I agree that most crates will upgrade, but there are some very prominent crates which maintain compatibility with old rust versions. An example is the regex crate which works on rust 1.20+.
It might not be a big deal, but a few weeks ago I started a new project that was going to reuse code from an existing project. The new project defaulted to 2018 (nightly compiler) and I got a bunch of errors with my module imports. It was just frustrating because it felt like it was a breaking change and one of the reasons I started using Rust is the promise of no breaking changes.
These kinds of changes are generally on par with other “never break” languages like Java and C++. Java 1.4 feels very different than Java 10.
It’s tough!
I fail to see how Rust editions could be much smoother managed. Or should they never fix anything in the language?