" Es mivel mindketto elfelejtheto, ezert a bennragado eroforras az gond...."
Ugyanúgy elfelejthető a destruktor megírása is. Vagy éppen a destruktorban az erőforrás-deallokálás.
A shared_ptr reset()/release() ugyanúgy elfelejthető.
Ha azzal érvelsz, hogy elfelejthető a try-with meg a close, ugyanúgy elfelejthető a másik is, hiszen semmi nem kényszerít arra, hogy helyes destruktort írj, vagy hogy egyáltalán legyen destruktorod.
Ez egy eléggé hibás érvelés.