Assignment and argument passing semantics

I don’t understand what kind of concept of reference is that, if “the content is the reference”. And I don’t mean here whether the 2 immutables are at same address in memory or not – I got that, thanks to you. (Same for mutables).

I mean, in case of mutables, “reference” seems to be a sort of an ID for the object. Even if the object is mutated, the reference stays the same, hence it’s still “same” object; while the contents of the object obviously change.
Now if you say that “content” is the reference – I guess you mean that’s only true for immutables – that breaks the concept of “reference” I describe above.

Also, it seems to break this mental model described in that long thread.
(And it’s mental model,so no worry I don’t interpret it literally )

EDIT: when I said

I meant that, for mutable objects, we have:
pointer_from_objref(x)
to check the “reference” of the object (correct me if that’s not the reference talked about in this post)
While for immutables, we don’t have such a thing.

MORE TO THE POINT:
Suppose x = [0 0]
And suppose we add to Julia language a special keyword to make this mutable object impossible to mutate in current scope, but still otherwise stay array, like:
immut x
Then I will still be able to check and confirm its unique reference with pointer_from_objref(x) , and still the concept of “reference” as ID holds.
However, now this x by all purposes would behave as a immutable object!

That’s whyI wish we had for immutables, a way to check and ID to confirm uniqueness, so that the semantics would seem more consistent (and easier to understand)