Klar sollte Assigned natürlich auf NIL (C-isch als NULL) prüfen kommen.
Oder meinst das Variant-NULL?
Assigned macht ja auch nur <>nil.
Einzige Ausnahme sind Methoden-Zeiger, wo es zwei nil gibt.
Und was ist denn nun null?
* der Inhalt der Variable
* oder haben sie bösartig die Adresse zur Variable gelöscht?
Letzteres dürfte dir aber egal sein, da es außerhalb keine Wirkung hat und die veränderte Adresse des VAR-Parameters nur innerhalb deren Funktion besteht. (die wird ja quasi dennoch als CONST und None-Reference übergeben
... außer du hast einen Zeiger auf einen Zeiger auf die eigentliche Speicherstelle )