C++ TObjectPtr<> as a return type, is it good practice?

I wouldn’t look at it as a smart pointer though, it’s very similar to a raw pointer and it behaves the same way in terms of garbage collection as indicated in the description.