Dein Versuch 1 ist richtig.
Wie kommst du darauf, dass das Objekt danach noch existiert?
Ein Prüfung auf Nil oder mit Assigned wird bei Free nicht funktionieren, da Free den Zeiger nicht auf Nil setzt. Man meint also, dass das Objekt noch existiert. Es kann sogar passieren, dass man noch auf Eigenschaften des gelöschten Objekts zugreifen kann.
Abhilfe schafft FreeAndNil(Objekt) oder das Wissen, mit dem Phänomen richtig umgehen zu können.
Oder hast du noch andere Merkwürdigkeiten, weswegen du der Meinung bist, dass das Objekt noch existiert?