Rust imposes a lot more constraints than just what is needed to make it safe. It imposes constraints to make it provably safe according to Rust's internal theorem prover.
I'm not convinced Rust & C++ have as much in common as you think. Rust is really familar to OCaml or Haskell users.