Child Blueprints rather then Exposed on spawn?

Hi guys. I’m wondering why I’d make a child blueprint of a class when I already have all possible variations stored in said class and can change it on spawn? For example, I have my masterAI class(with its level, behavior tree, and all other defining details exposed), and an AI spawner that then selects and spawns it. Its the same way with my projectiles. A master Projectile has its data exposed and my player character selects a firetype from an enumeration feeds all the the data on the projectiles spawn. My item system, pickup system, traps, etc are all setup this way. Is this a bad way to go about it? I haven’t had any issues, or anything like that, in fact everything works great. The only thing is I haven’t really read of anyone doing it this way, and just thought I’d check with the community. Thanks for reading.