Rust has very strong stability
guarantees between 1.x releases, and has a very extensive set of
tooling/infrastructure to make sure no breaking changes make
their way into a release (see crater [1]). Any Rust-based
package big enough to be packaged by Guix will have had its
test-suite confirmed to work with the new release of cargo/rustc
long before any new release is made (and in many cases before
pull-requests are merged.)
Nevertheless, rebuilding all Rust
packages on every rustc release isn't strictly necessary.
(Improvements in optimizations do happen, but they are mosty
minor release-to-release.)
But I agree with your
’package-with-explicit-rust’ idea, it is very unfortunate that
"Rust, the development environment used by Guix users building
Rust software" and "Rust, the build environment we use to build
all Guix Rust packages" got conflated in Guix.
[1]:
https://github.com/rust-lang/crater