Am inherited liegt es nicht.
Der Code lässt sich auf Folgendes reduzieren und hierbei kommt es schon zum Memory Leak.
Code:
...
TMyClass2 = class(TObject)
public
class constructor Create();
end;
...
class constructor TMyClass2.Create();
begin
//
end;