Firefox is effectively targeting a nightly compiler, they just use this sneaky underhanded trick to access the features in a stable release.
Hmm. It could be nicer for stability reasons if Firefox pinned a specific nightly compiler rather than using a nominated stable release plus the RUSTC_BOOTSTAP trick. But I can understand why they would prefer the stable release.
Anyway: in short, the premise of this article is incorrect because Firefox cheated.
https://github.com/mozilla/gecko-dev/search?q=RUSTC_BOOTSTRA...
Specific example: https://github.com/mozilla/gecko-dev/blob/d36cf98aa85f24ceef...
In any case, sneakily using nightly features can make using a different Rust version problematic, since these features are free of any stability guarantees.
Arch Linux carries a rather large patch updating some vendored dependency in order to make Firefox 78 compile with a newer Rust. https://github.com/archlinux/svntogit-packages/tree/packages...
I would suspect the developers are maybe not entirely in tune with the Rust ecosystem, and that would make sense, they have more important stuff to do, like building Firefox, than playing with Rust. :)
Luckily as far as I know this is the only serious mis-use of the bootstrap flag. This would be a bigger problem if more people misused it. (And it has, in the past, when people used those packages. There was a relatively high-profile Debian situation about it a while back…)
The main users are encoding_rs which depends on packed_simd and qcms which needs NEON support.
So it's not like we're going around using all sorts of unstable features. It's very targeted and at least in qcms's case unlikely to change before stabilization.
Firefox no longer updates its MSRV in sync with Rust release trains. I’d be happy to remove this particular RUSTC_BOOTSTRAP if we decided to increase Firefox’s MSRV (currently stuck at 1.47.0).