equals () vs compareTo () in Comparator / able (Theoretical)

Nie rozumiem Javadoc:

The natural ordering for a class C is said to be consistent with equals if and only if
  (e1.compareTo((Object)e2) == 0) has the same boolean value as e1.equals((Object)e2) for
  every e1 and e2 of class C.

Dlaczego tak powinno być?

Rozumiem, że e1.equals (e2) = true powinno zawsze oznaczać e1.compareTo (e2) == 0, ale nie mogę zrozumieć, dlaczego odwrotnie powinno być prawdziwe. Porównanie nie jest równością! 2 równe obiekty powinny być porównywane do zera, ale 2 różne obiekty powinny być w stanie porównać do 0, jeśli kryteria sortowania nie są istotne w ich przypadku. Mam na myśli to, że posiadanie różnych obiektów równych nie jest poprawne, ale różne obiekty z porównaniem 0 dlaczego nie?

EDIT: Później mówi, że zalecana jest spójność, dla niektórych problemów ze zgodnością, a więc pytanie

questionAnswers(3)

yourAnswerToTheQuestion