Could one resolve the problem by insisting that the properties that form part of the equality be part of all items in the class hierarchy.
eg. Even though Point may not have a color instance variable, there is no reason why it can't have a default color for all "plain" Points.
Of course, extending this to a smalltalk / ruby "Objects all the way down" hierarchy if Point inherits from Object then Object needs to have a default (x,y) position and colour.
It would seem mad to give place default values for every property of any object ever on the Object base class...
However one could provide default values for Point and ColoredPoint which the equality operator uses.