lowkey smart pointers are often just used to deflect the responsibility of thinking about memory layouts
https://floooh.github.io/2018/06/17/handles-vs-pointers.html
and most issues can be caught by using a static analyser of a memory leak checker (getting ppl to consistently use them is another issue, but still)