Coming from a #Haskell background, I'm very sad that #Rust makes it so hard to avoid mutable references.
I don't want to mutate things in place, I want to write functions that consume their arguments and then return an entirely newly constructed result, but that will often land you in trouble in Rust. This is not about performance, I mean you will find it difficult to even structure your programs.
For example, there's an entire cottage industry of *solutions* around updating a mutable value wholesale, i.e. where you compute the replacement by consuming the original value.