This is interesting. If I want my object to be movable without the need for acquiring the locks for all outbound references, I need my references to be of type 'reference to mutable data'. So that could be one of the reasons why Rust reference types are like this.
But what happens to inbound references when I'm moving my object? Who is in charge of updating them?