Rust is an excellent language and certainly occupies an important place in the programming language landscape. However, it is not ideal for all applications, purposes, and objectives.
All programming language designs make engineering trade-offs. All such designs have different priorities. Correctness is only one aspect of software engineering, and there are varying degrees of correctness.
There are also varying degrees of maintainability. Execution efficiency is also relative; for the vast majority of applications in the world, maximum performance from languages like C++ and Rust is unnecessary. Using languages like Python and Java, they run more than fast enough.
If your particular application requires guarantees of correctness or performance, I would use Rust. If your particular application requires minimum development time (i.e., maximum velocity of development and productivity), I would use Smalltalk.
With Smalltalk, I can achieve a reasonably high degree of correctness and reliability through the use of TDD (test-driven development). Smalltalk is also excellent from the maintainability standpoint — it provides a rich set of development tools to aid in the development process.
As always, choose the right tool for the job.
Not surprisingly, then, my ideal arsenal of programming tools includes both Rust and Smalltalk. Between them, I can cover practically all conceivable use cases.