Hmmm. On the one hand I heavily agree with the analogy to read only and write exclusive locks (I think I gave it myself in the ownership chapter recap/discussion thread). On the other, I feel like this is singling out "references" for something that is much broader in cause.
I could just as easily say that references in rust are "just" references, and that it's the rules around ownership (like the compiler automatically dropping things when changing scope) that restrict what you can do with them, in practice.
I dunno, given rust's history and explicit purpose of preventing memory errors, notably in multi threaded code, if you still assume you can just take a reference to "any object in memory" and do whatever you want with it then you either haven't paid enough attention to how the book introduces references or maybe rust isn't cut out for your way of thinking.
There are ways to do raw pointers in rust if you need to. But then you need to more or less do all of the compiler's job yourself, notably figuring out when you can safely free that memory.
In other words, references don't exist on their own, and so how the author describes them "in other languages" feels to me like they never had to implement a language themselves and safely deal with shared references, nor use them that thoroughly in a language with "general" references like C. Otherwise I don't think they would have developed this mental model that expects references to be considered their own thing, almost separate from the underlying data.
I can't tell if the author is inexperienced with languages that "do a lot" and have a more cohesive design, or is so much more knowledgeable and experienced than I that they've already taken this into consideration and are arriving at this point regardless.