Hi,
Indeed sending PlayMaker Event will be a lot more efficient then sending Unity Messages.
AS for using Invoke, this would require hard data, but reflection is generally not a good idea especially on mobile.
The ultimate way is to create a dedicated Custom action accessing directly without reflection, the class and methods/properties you want to call, set/get. That's the best way.
As for "Managed" over "Object oriented" approaches, it's balance between clean code/fsm and efficiciency. Always prefer Object oriented first, then if you find a bottle neck, then you can go for a managed way ( one fsm controlling several properties on other gameobjects).
Always develop the feature you want exactly so that it works, and then optimize if you find a problem as you profile, Don't optimize first, you'll corner yourself and end up refactoring more than when you need to refactor for optimization reasons.
The worse you can do here is instantiating objects and components, so mayke sure that you use a pooling system if you do, and else make sure you do that either on start of the game or time it with menus and pauses in games to avoid hickups.
Bye,
Jean