This subject is dealt with at length in:
ftp://ftp.netcom.com/pub/hb/hbaker/ObjectIdentity.html (also .ps.Z)
An 'object' that cannot change (has no 'state') can be replicated, but
the replicas can't be distinguished -- e.g., integer 3, coordinate (3,4), etc.
An 'object' that can change (has internal 'state') cannot be replicated,
so it has 'identity'.
So, in essence, _everything_ has 'identity', since any attempt to distinguish
the various copies of replicable items will fail!
ML and Algol-68 got this right, and Lisp, C, C++, Smalltalk, etc., etc., got
'Shallow-copy' and 'Deep-copy' are ill-defined and dangerous -- even more
dangerous as _concepts_ than as operations, because any attempt to understand
them in any important way will necessarily lead to greater confusion.
I don't expect many to be swayed by these arguments, because much money
is to be made keeping things very confused and mysterious. Clarity makes
things simple so customers can go on to more productive work.