Si l'esempio con Integer e equals ho notato essere infelice, non ho controllato il codice, avessi usato un'altra classe (anche la stessa classe in cui è definito il main) avrei ottenuto un false-true.
Ovviamente un override di quei metodi andrebbe documentato in quanto se fatto non correttamente violerebbe il princìpio da te citato e potrebbe introdurre bug in fase di modifica del progetto, ma non lo ritengo per forza una pratica nociva, certo non è rigorosa...
Con l'Integer è effettivamente un brutto esempio di override, ma se lavorassi con una classe creata da me, non mi farei troppi problemi a dire che il metodo equals deve fare quello che dico io

Questo anche perchè non mi è chiaro il livello di professionalità che deve avere il progetto del quale si discute, però se gli è stato specificato che deve instrinsicamente rispondere a quelle proprietà dovrebbe effettivamente fare attenzione.
Comunque hai portato alla luce un discorso vero, che spesso ignoro anche io, ogni tanto dovrei ricordarmi anche dello stile "corretto".