Von mir aus dann eben TMyClass.CreateManaged() oooder in TObject bereits einen Parameter einführen: TObject.Create(isManaged: Boolean);

Letztlich gehopst wie gesprungen, wobei ich die syntaktische Unschönheit von new nachfühlen kann. Die Alternative mit Parameter oder Benamung hätte nur ggf. den Nachteil, dass man die Eindeutigkeit in Ableitungen sehr leicht (und fahrlässig) verschleiern könnte, und man es der
IDE beim Unterscheiden zusätzlich schwer machen würde. (Sie müsste schon regelrechte Interpreterfähigkeiten bekommen, aber vielleicht wäre das ja mal ein Anreiz die
IDE-Features mehr an den Compiler zu knurpseln als z.B. das dolle ErrorInsight oder wie sich die vielen falschen roten Unterwellungen schimpfen, die scheinbar eher selten Plan von der Projektstruktur haben.)
Oder, wobei ich das so garnicht mag: Annotations. Wobei diese dann in die Klassendeklaration gehörten, und somit die GC-Bindung nur per Klasse (und all ihrer Nachfahren) gegeben wäre, und man nicht die Freiheit hätte von Instanz zu Instanz zu unterscheiden. Eher bäh.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)