Hi,
It's necessary indeed, because PlayMaker must have an FSM to send an event by design.
So with the uGui and almost all proxies you'll be using, in order for a scripted Component to fire an Fsm Event, it has to have an FSM. There is no other possibilities.
Usually, developers hide the GameObject they creates, Unity has this ability to let create a component or a GameObject and not show it to you, but I choose to be up front so that you get the real deal with what's going on inside your project.
Bye,
Jean