I love Rust but it is accidentally in the position of trying to serve two disparate camps of people. Developers who just want a modern ML-ish language with good tooling and some actual lessons learned from PL theory, and developers who need near-total control over the hardware but are tired of working with C & C++ and manually solving decades-old problems with memory safety. The former are a very large audience, but have to deal with requirements imposed by the latter which are irrelevant for their use case.
This a million times. I love working with Rust because it's - from my point of view - an ML language disguised in C-syntax (with a package manager and unit testing etc. etc). Most of the time I'd be served well by a GC version of Rust.
Same. I wished for this many times. I don't need incredibly detailed on-the-metal precision and most of the time, I do not want to think about stack, heap or lifetime parameters. I enjoy the language for its syntax.