Is it a good idea to use event for everything?

Personally, I use events quite a bit.
I’m aware that DYNAMIC events have some cost to them due to them being serialised for Blueprint reasons, but other than that I don’t think there are any other real costs.

I don’t really like the EventManager approach. In some situations it works but I like everything having its own purpose - not all shared together.

What I tend to do is my Components will have events/delegates and the Actor which owns those Components will subscribe to those events. This approach makes it really easy to add functionality using BP.
For example, I would have a WeaponsComponent which is responsible for everything to do with managing Weapons. The Character will simply subscribe to the relevant events, such as ‘OnCurrentWeaponChanged’, ‘OnWeaponAdded’, etc, to do the things it needs to do, i.e. attach to sockets, update HUD, etc.

My remedy for the Component checking that it seems like you’re talking about is using UInterfaces (especially useful in Blueprints).