After some testing, it seems Outer has to do with the garbage collection of the object as well. It seems like even if there are strong references to a UObject via TSharedPtr or UPROPERTY, if the Owner goes away, so do all the objects that were created with NewObject<…>(Owner).
I ran into this because I have a UMenuContext object stored on my UMyGameInstance class. The UMenuContext has a stack of UMenuWindow’s. These were getting deleted when I switched maps and the reason was that they were parented to the current AMenuPlayerController instead of the UGameInstance and so the garbage collector was deleting them when the player controller switched to a new one.