Good question! Unity makes no guarantees about the order that monobehaviors are updated, so you have to consider it basically random...
Intializing global variable values in FSMs was a workaround for the PlayMakerGlobals asset losing its default values in older versions of Playmaker. This should now be fixed, so the workaround should no longer be necessary.
However, in other situations where you need to guarantee update order, there are various strategies you could use:
- Do stuff that needs to be done first, then load the level.
- Use the Next Frame Event to wait till the next frame to do something.
- Use states and events between FSMs to explicitly define an execution order.
Hope this helps some! Most of the time this shouldn't be an issue - it's a general problem with any monobehaviour in Unity, but rarely causes actual problems...