関数内で一時オブジェクト的に作成したメモリーリークは C++でもDelphiでも
すぐに見つけられるよ?
なんでそんなに時間がかかるの?

少なくともDelphiなら GetMemoryManager/ SetMemoryManager 使って絞り込めばすぐに判る
C++は環境毎にそれなりの方法使ってるよ

 難しいのは、解放忘れじゃなくて、解放すべきでない時に解放してしまう事だと思うけど?
 つまり、使おうとしたオブジェクトが既に解放されている問題の方なら厄介だと言っていいと思うけどね

それに、C++でバカ除けというからには、 new で作成する事が禁止出来なくちゃ言えないでしょ

Delphiは 統一的に 一時オブジェクトについては  finally で解放すれば解決出来る。
それは貴方様の望むスタイルではないかもしれないけどね。

そして、望むスタイルに近い事がやりたいなら、インターフェース型を使えばいい。
インターフェース型を使えば、全ての変数から参照されなくなったオブジェクトは自動的
に削除される。