Un'entità ha un'identità, il che implica che dovrebbe esserci solo un oggetto (ad esempio un particolare cliente) in memoria.
Come tale, l'uguaglianza di riferimento (che è ciò che la versione base di object.equals controlla) dovrebbe essere l'unica uguaglianza di cui ci preoccupiamo.
Un oggetto valore d'altra parte dovrebbe sovrascrivere gli Equali in quanto potrebbero essercene molti in memoria.
Ci sono problemi con il ragionamento sopra riportato?
Non riesco a immaginare perché avrei due oggetti cliente che rappresentano lo stesso cliente, e in ogni caso dove ho fatto (ad esempio, ho preso un clone per fare qualcosa con esso), non posso pensare a nessuna circostanza in cui dovrebbe verificare se fosse uguale all'oggetto originale.
Anche in un ambiente distribuito, qualsiasi processo client dovrebbe contenere solo un oggetto per un determinato cliente.