Das Verhalten ist "by Design", da sich in Wahrheit Lookup-Felder nur auf die ID beziehen und nicht auf den Namen. Das Verhalten findet man z.B. auch, wenn man Lookup-Felder per Default "vorgeben" will. Wenn man die richtige ID vorgibt, dann kann man den Namen "Hinz und Kunz" setzen, weil das Lookup-Feld nur auf die ID hin prüft. Nachdem man den Datensatz jedoch wieder abspeichert, ist das Feld dann mit dem richtigen "Bezeichner" gefüllt.
Wenn man also dafür Sorge tragen möchte, dass das Primärer Kontakt-Lookup-Feld nach Löschung des primären Kontakts beim nächsten öffnen tatsächlich gelöscht ist, arbeitet man im OnLoad am besten mit einem .ForceSubmit
Gruß