Kompatibilität.
Bevor es Generika gab, gab es nur get(Object o).
Hätten sie diese Methode in get(<K> o) geändert, wären die Java-Benutzer möglicherweise gezwungen gewesen, umfangreiche Code-Wartungsarbeiten vorzunehmen, nur um funktionierenden Code wieder kompilieren zu können.
Sie könnte haben eine zusätzlich Methode, sagen wir get_checked(<K> o) und die alte get()-Methode abschaffen, damit es einen sanfteren Übergang gibt. Aber aus irgendeinem Grund wurde dies nicht getan. (Die Situation, in der wir uns jetzt befinden, ist die, dass man Tools wie findBugs installieren muss, um die Typkompatibilität zwischen dem get()-Argument und dem deklarierten Schlüsseltyp <K> der Map zu überprüfen.)
Die Argumente, die sich auf die Semantik von .equals() beziehen, sind meines Erachtens nicht stichhaltig. (Technisch gesehen sind sie korrekt, aber ich halte sie trotzdem für falsch. Kein Designer, der bei Verstand ist, wird jemals o1.equals(o2) wahr machen, wenn o1 und o2 keine gemeinsame Oberklasse haben).