It depends what you're trying to do. Some data structures inherently do not work comfortably with a single-mutable-ownership model, and while they're not exactly ubiquitous, they're common enough. (My exposure to rust is through advent of code where they're more common than in the real world).
Rust doesn't make it impossible, but you need to convert everything to Rc Refcell and there's a load of annoying crusty boilerplate, so it is more difficult. And yes, the guards in those calls can prevent or expose nasty errors, but a lot of the time - in a simple app you're writing to learn the language - the logic that keeps everything safe is so simple that an experienced programmer doesn't even think about it, and then it's confusing because it's not clear what you're being protected from :)