all PlayMaker variables are accessible to all states?
Yes, but these are actually "local", in an FSM sense at least. A "global" variable would be seen by every FSM active in the scene, but there's no such thing currently, you need to set event data -> send an event or read/write the variable remotely - check the "read int" action I've posted for an example.
Does a PlayMaker file or the entire FSM get written as a single block of code?
Not really, the FSM data (whatever actions, variables and values you've set) is saved along the scene, probably as a metadata. Alex can clarify this further.
What kind of code does PlayMaker generate?
None, it's all interpreted in real-time. uScript on the other hand, generates C# code, but it lacks any sort of interactive debugging, which Playmaker is full of. Before you ask if this hurts performance, remember what's actually run are the
actions, and those are C# scripts which take the simple FSM variables as parameters. Not saying there's no overhead by having a multitude of FSMs running at the same time, but you'd get bad performance out of a shitton of non-optimized C# scripts running at once as well.
If you ask me, what's really hard in Playmaker is understanding how multiple commands can be executed in the same logic frame, I
think whatever is in the same state is run in a single logic frame. When you're trying to "code" a very complex behavior which requires time-critical execution it generally poses a problem, especially when it demands communication between FSMs.