Why Actor with AiController needs distinction between "Placed in World" and "Spawned"

Hello, my question refers to the conceptional aspect between setting the Auto Posess AI property of an Actor with AiController (in other words a NPC-Actor) to Place in World and Spawned. To be more precise, I need to understand why the lifcycle of the Actor changes between these settings.

I know that the engine will call “BeginPlay”-Event on a spawned Actor first, then call the “Possessed”-Event afterwards and for an Actor placed in worlds it’s the opposite. But why exactly does the engine behave like this?

Furthermore, can someone tell me if it is a good idea to try to create a NPC-Actor that can be spawned AND placed in world? Or should I start developing my NPCs as spawnables from the beginning now and spawn them via a BP instead of placing them in world?