> You do when the very basis of Class Based Object Oriented Programming is to maintain unique identity of class instances.
You keep using that word. I do not think it means what you think it means.
You're clearly arguing something you're very impassioned about. It just doesn't make any sense beyond you "don't like the asterisk".
Class-based object oriented programming is where inheritance is derived through taxonomy- that is, short for classification. See: http://en.wikipedia.org/wiki/Class-based_programming for more details.
Identity comes from mathematical identity and refers to a comparison that remains true regardless of (or without comparing) any of the constituent variables. See http://en.wikipedia.org/wiki/Identity_(object-oriented_programming) for more details.
While C++, Smalltalk and Java are all "class-based", that doesn't mean that their object models are identical; It is impossible to implement some algorithms in C++ that are trivial to implement in Smalltalk, especially those that depend on #doesNotUnderstand:
.