Being able to compare memory to compare two object doesn't make an object any lighter, compared to magically calling a compare method on the object itself (can be decided at compilation time, thus no performance penalty: it depends on what the compare method does.)
Immutability also doesn't make the object lighter, it's again a compile-time property.
I am still missing something...