Ich würde eigentlich erwarten, dass beim Ausführen der letzten Zeile auch der Destruktor von TMember durchlaufen wird. Tatsächlich tut er das aber nur, wenn im Destruktor von TOwner der Aufruf
DestroyComponents();
enthalten ist.
Im Destruktor muss inherited (Destroy) aufgerufen werden. Andernfalls wird es auch in Delphi nicht wie erwartet funktioniere. Der Destruktor wird (in Delphi) mit override deklariert.
Hope this helps,