TScriptInterface: GetObject or GetObjectRef?

I’ve been working with TScriptInterface quite a bit in some of my gameplay classes, and I have a couple of questions about GetObject() and GetObjectRef().

As far as I can tell, GetObject() is actually a macro to a function GetObjectW(), but the documentation for FScript interface only mentions GetObject and GetObjectRef. They both have the same description, but GetObject returns a pointer to a UObject whereas GetObjectRef returns a reference to a pointer to a UObject.

I understand where a reference might be preferable to a pointer, but isn’t it possible to simply grab the address to the pointer and bypass the reference returned by GetObjectRef entirely? If so, when might it be preferable to use GetObjectRef over GetObject?

Which of the two is considedered better practice to use in general? What are the use cases for each? Are there any specific differences between the two that I should watch out for (besides the return type)?