Das sieht sehr nach dem Vorläufer von TInterfacedObject aus.
Mit einem interessanten Unterschied: Nach dem Create steht der RefCount auf 1 und nicht 0 und das Free zählt den RefCount wieder runter, zerstört aber die Instanz nicht, wenn RefCount noch nicht 0 ist, während TInterfacedObject da einen Error liefert.
TInterfacedObject gab es übrigens auch schon in D5 (womöglich auch davor, aber das kann ich jetzt nicht nachprüfen).