Würdest du in den Factories (
DB.Create, ...) Interfaces zurückgeben, gäbe es gar kein Problem.
Die werden durch Referenzzählung autom. freigeben. Dadurch sieht der Code nicht so grausam aus mit all den verschachtelten try-finally-Blöcken, die Delphi sonst so braucht. (kotz!)
Deine normalen Klassen (Command etc) würden diese Interfaces implementieren und alles wäre in Butter.