There must always be a tradeoff between publishing a breaking change of an API and keeping using an old API for the sake of interoperability.
However, I see a structural problem here because of the combination of:
- the goal of Rust's stability (which is important and legit),
- (allegedly? yet?) missing concepts for migration,
- the long lifecycle of a programming language, and
- the complexity of Rust.
I believe that this structural problem should at least be recognized as such. Not to say that I have a solution; but it is not "irrelevant".