Perso je pense que dans les gros projets le langage n'est plus vraiment le problème. En C++ ce n'est pas difficile de ne presque jamais leaker en observant quelques petites règles (je dis presque parce que les références circulaires nécessitent plus d'attention qu'en Java/C#).
Dans les langages "managés" tout comme en C++, les problèmes de mémoire sont souvent dûs au fait que les gens ne maîtrisent pas le cycle de vie des objets qu'ils utilisent. Typiquement les espaces partagés utilisés à un moment comme cache. Et sur un gros projet il faut y faire gaffe quoi qu'il arrive.
En C++ je n'ai plus de souci de fuite de mémoire depuis que j'utilise la technique des références fortes/faibles comme
décrites ici.