It's hard to optimize for readability, performance, and safety. Rust chose to go with performance and safety. In the future, maybe we can have a language that gives all three but not today.
Shameless relevant plug: that's the exact goal of Vale! [0]
It turns out, when one removes the borrow checker, they get something that's much more readable, because a lot of Rust's complexity was added to help support the borrow checker.
Ironically, we can then add back in a different, easier form of borrow checking to get the speed benefits.
It definitely is. You've probably just had more time to discover the complexity of C++ (and read about it, since it's actually specified).
Of course Rust's complexity is much less dangerous because if you forget some obscure rules you get a compile error instead of UB (in safe Rust at least).
Vale sounds very promising (I'm also closely following Koka). But one thing I've found is that Rust's ownership/borrowing model does more than just eliminate GC. It also seems to encourage good program structure that is less prone to logic bugs.
I don't have solid evidence for that - more of a feeling. But I wonder if switching to reference counting would lose that.