I also think that year-from-now Rust will be way nicer than at the moment, it's absolutely early days. But there's a lot you can do, even on stable, right now. This is why I said it depends on what you're doing. Some use cases have absolutely no choice but to use unstable things. Others have options, and others only use stable.
As to your three points:
1. You can configure things so that you only need nightly when doing benchmarking, and run on stable the rest of the time.
2. Compiling `rustfmt` needs nightly, but using it doesn't, as it's a binary.
3. Yeah, the SIMD stuff just happened, so it's gonna take some time.
Developers like to say they want choice when it comes to formatting, but take it away and you're left with resigned programmers who are very productive at reading code.
^^ Perhaps not the right outlet for this, but maybe you can point me to where this discussion is taking place.
Also, rustfmt is a binary which can work without nightly once you've compiled it.
I built rustfmt with nightly Rust and it dynamically links all kinds of shared objects from the Rust install. This doesn't happen for a simple hello world so there must be something different in rustfmt's build.
Stability mainly matters when you release a library and it stops working on a newer compiler, breaking everyone downstream. That's a pain for the downstream users, because they need not necessarily understand your library internals, and the software they're building will be completely broken until you update it.
If an optional developer tool breaks, it's only you that's affected, not downstream users. You can wait for it to be fixed, no problem.
Rustfmt uses internal Rust APIs to parse and reason about the code. It could use something else (like syntex), but that would be more work.
That doesn't mean that everything that's available on nightly will be available in stable in seven weeks, of course. Everything lands as stable and then is made stable at some point in the future, at least one full cycle after it's landed. There's lots of pre-Rust 1.0 stuff that's still nightly-only.
While this is probably factually true -- I've had quite the opposite experience. :(
- I want to write benchmarks for my code, but I need `#[feature(test)]` AKA nightly.
- I want to [format my Rust code](https://github.com/nrc/rustfmt), but I need nightly.
- I want to use Huon Wilson's SIMD crate, which requires nightly.
I'm not saying these things should be stable right now, but I am saying if you try to use Rust right now you _will_ encounter a lot of stuff marked as unstable and/or only usable on nightly due to XYZ. I still think Rust is amazing and everyone should give it a shot though, but it's not as stable/polished experience as I think it will be in say a year from now. The language is stable, but the ecosystem just isn't yet.
P.S. You've helped me personally all too much over the Rust IRC channel, so thank you a million times for that! :)