Setzt Finalize den Speicher eigentlich auch auf 0/nil, oder gibt es die verlinkten Speicher "nur" frei?
Wenn nicht auf nil gesetzt wird, dann ist ein "doppelter" Aufruf von Finalize falsch und kann/wird zu netten Fehlern führen.
Finalize mehrfach aufzurufen macht soweit ich weiß nichts, also nehme ich an, dass die entsprechenden Speicherstellen auf nil gesetzt werden.