@snafu: Nein, das Vorgehen ist eben nicht bekannt. Es ist aber definiert das es eines gibt das die definierten Eigenschaften garantiert. Nämlich das die Vergleiche während eines Programmlaufs konsistente Ergebnisse liefern, egal wie sie das tun. Das ist definiert. Und damit ist das Ergebnis letztlich ja auch definiert. Mit einem Teil den die Implementierung frei festlegen kann, innerhalb der definierten Grenzen. *Das* ist aber letztlich bei sehr vielen Sachen so.
Zum Beispiel das Ergebnis von `id()`. Das muss eine Zahl liefern, so das bei keinen zwei zur gleichen Zeit existierenden Objekten der gleiche Wert heraus kommt. *Wie* das passiert, kann die Implementierung entscheiden. Das bedeutet ja aber nicht dass das Ergebnis von `id()` undefiniert ist. CPython's `id()` basiert auf der Speicheradresse des Werts. Bei Jython ist es AFAIK einfach ein Zähler. (Das heisst nachdem ca. 2 Milliarden Objekte erzeugt wurden, bekommt Jython ein Problem.

)
Ebensowenig ist `hash()` exakt definiert. Nur die Randbedingungen die erfüllt werden müssen, und man kann natürlich auch ein wenig gesunden Menschenverstand erwarten.