Same point can be made about anything. Never breaking BC is easier, and more comfortable, but in the end it's slow and inevitable death.
If C++ would have cleaned up legacy, Rust wouldn't need to exist for ex.
Java has long had a policy of never breaking BC, but few years ago they started marking packages deprecated for removal. They're very slow and systematic about it, as they should be, but the point is, eventually those packages will be removed. And that's good. It means Java has a future.