I really couldn't disagree more. Rust doesn't hide those details at all. APIs tend to be extremely explicit. I have never run into the issue you're describing in rust, I have run into it far more in other languages where mutability and sharing are implicit.
the existence of iter is to hide implementation detsils from you.