Primärschlüsselzwang OXID?

Ich habe mir gerade mal die Klasse oxBase angesehen, da ich dort einen Fehler gefunden hatte, der mittlerweile auch schon im Bugtracker drin steht.
Leider stellt sich an dieser Stelle bei mir immer mehr die Frage, was überhaupt beabsichtigtes Verhalten ist, da ich durch die Implementierung in der Klasse oxBase (und diversen anderen Core-Klassen auch) nicht sehen kann, in welche Richtung es geht.

Problem: Man kann mit _sExistKey einen eigenen Primärschlüsselnamen definieren. Leider wird dieser nicht konsequent berücksichtigt und es finden sich überall im Code nur “oxid” als fest eingetragenen Wert. OXID schaut sich nicht den Inhalt der Klassenvariable an, setzt dadurch teilweise Datenbankabfragen falsch und verfälscht damit das erwartete Ergebnis.

Zum Beispiel ist die Verwendung von exists() mit einem eigenen Primärschlüsselfeldnamen nicht möglich, da die SQL-Abfrage dann einen ungültigen Query produziert (der von mir gemeldete Fehler im Bugtracker). Allerdings gibt es auch in weiteren Abfragen oder Scripten Probleme dadurch.

Gibt es eine offizielle Guideline, die besagt, dass der PK immer OXID heißen MUSS oder warum wird so eine Funktionalität angeboten und dann nicht konsequent beachtet? Ist _sExistKey womöglich sogar noch ein altes Überbleibsel aus früheren Zeiten?

Nach meinen Erfahrungen mit dem Framework kann ich nur davon abraten den Schlüssel anders als OXID zu nennen. Das führt nur unnötig zu Problemen im kompletten System. Tu dir nen Gefallen und nenn den Schlüssel einfach OXID - tut ja nicht weh.