NewObject or CreateDefaultSubobject

From what I understand, NewObject creates and instance that is not visible to editor however instance created by CreateDefaultSubobject is visible to editor. For example, if you create instance of camera using CreateDefaultSubobject and attach it to your pawn, then that camera will actually appear as child of pawn in editor. This is also why CreateDefaultSubobject usage is restricted to constructor.