Yes. You can think of it that way, though I think it’s more common and perhaps more descriptive to say that it returns a pointer.
By the way, passing objects around by pointers is *extremely *common in UE4 C++, to the point that it’s basically the way to do it.
For example, when you call up GetController() on a pawn, that function returns a *pointer *to the AController that is currently possessing that pawn. Want to get the name of an actor to print it out for debugging? Call up the AActor::GetDebugName(…) function, which takes a pointer to the actor whose name you want to know. Want to apply damage to several actors in a radius around a location? You can use the UGameplayStatics::ApplyRadialDamage(…) function, which (among other parameters) takes a TArray filled with pointers for which actors to ignore.
So it’s to be expected that functions will use pointers to return objects and to accept objects as parameters. It’s the opposite that would be surprising, at least in UE4 C++.