Jinymy slovy - pouziti GC je (velmi casto, ne vzdy) super, jen musis vedet ze a proc?
Skoro - použití GC je (velmi často, ne vždy) zbytečnost, ale má svůj super use case - neprogramátoři, prototypování, v některých případech i v produkci.
Nevidím problém v tom si paměť uvolnit sám, přesně v moment, kdy má být uvolněna. Typicky v Cčku na malloc pohlížím jako na blok - když napíšu malloc, hned pod něj píšu free a kód strčím mezi. Při dodržení single exit point je to velmi spolehlivé.
Ne ze by si zrovna na tenhle user case musel psat dealokaci rucne (coz mimochodem neni zas takova sranda, pokud zacnes uvazovat i o tom, ze se ti uvnitr bloku muze stat ledacos spatneho). Tohle je ten nejprimitivnejsi priklad escape analysis.
Ano, uvnitř bloku se může stát ledacos špatného, ale buď je to správně ošetřeno, nebo to není tak kritické a blok dojede včetně free, nebo to třeba segfaultne a paměť se mi uvolní tak nějak přirozeně

, nebo je to ve stavu, ve kterém to nikdy nemělo být a musí se to vyřešit. Tohle ani GC nezachrání. A jinak, to je pořád řečí, jak musí být kód čitelný (někteří to považují za důležitější, než jeho funkčnost) a najednou je používání primitivních postupů špatně? Ono totiž většinou čím primitivnější, tím lepší. Chce to kázeň. A to je právě to, co velmi často chybí a proč vzniká tolik kočkopsů.