You need to know what it does and what it doesn’t or you’ll be surprised.
I don't think that std::unique_ptr is shrouded in mystery: it's designed to be the unique handle of a raw pointer, and it frees the memory when it's lifetime ends. As it's designed to be the unique holder of a resource, it's implemented to disallow making copies. It might be implemented in clever ways, but a developer experience point of view it's quite straight to the point.





It really isn't. Otherwise there would be programming languages out there that would make it impossible to write buggy code, and there is nothing of the sort.
You still get bugs. This isn't up for discussion. In fact, the only difference is that somehow you assert that C++ suffers from this issue but started to backpedal when any language other than C++ is brought into the picture. That hardly sounds like a personal assertion that's grounded and well founded.