Breaking changes are sometimes a necessary evil. But they don't belong on minor releases. There should really be a stronger community standard that package maintainers sit on their hands and simply deprecate calls they want to get rid of until they can sweep them up in the next major release. It's also not cute to abuse semantic versioning by incrementing the major version number several times a year. (I'm looking at you, Guava.) That sort of stuff might be fine if a packages were relatively isolated affairs, but then the rest of the ecosystem doesn't really do anyone any favors by pulling in deep hierarchies of transitive dependencies that make it very difficult to limit one's exposure to the bad players. And then the build tools get to pile on and (as Maven does, at least) default to unpredictable dependency conflict resolution rules that obfuscate any latent problems.
I suppose it's no wonder that Java's the only place I've ever seen something like package relocation. But, at the same time, that practice has got to be the most distressing code smell I've encountered in my career to date.
Hopefully Java 9 makes some of this better (we're not ready to upgrade to it, yet), but I can't shake the feeling that this stuff really shouldn't have to have been such a hassle in the first place.