I came to the same conclusion, Actors are great for single long lived objects, but I need many small short lived objects. For example I currently have around 15 different movement states for my MovementComponent like GameplayState_MoveToLocation, GameplayState_MoveToTarget, GameplayState_DashToLocation etc. Those objects may only live for a few seconds until they get replaced. Considering that this movement component will be used by every “unit” in my game and I can have ~100 of active units in my game things might matter.
Also it’s very easy to replicate an UObject, I mean it’s “basically” one line if they are owned by an Actor or ActorComponent.