const on its own provides no guarantees, it just imposes restrictions so that immutable can provide guarantees.
While in context with the original question this is fine, but I do not like this use of guarantee.
What I mean is, const does provide guarantees by itself. And it provides more than C++ because it is transitive and modifying a const reference is undefined.