Does thinking about memory and ownership ever get easier?

What I truly mean:
I know how pointers work, heap, stack, cachelines, etc...
My problem is juggling all that while writing the regular code logic of what I doing. If I do it in a GC lang I can just focus on handling the object and implement my algorithm while also thinking about the other stuff such as interfaces, proper types, big O, modularity. I feel like adding new/smart_ptr just makes it too much to keep in my brain. Does it ever get natural? For the cppers and crabs in here: does ownership ever get natural? The same way it's natural in C to know when to pass a pointer or a value into a function say?