Hmm.. but if you edit the instance and not the prefab it only changes the object in that scene and not the prefab.
If you drop your prefab in another scene the changes should not be there.
unless you click on prefab "apply" in the inspector.
Yes, I'm always applying changes to prefab and then the references to child objects in FSMs of this prefab are working on other scenes.
When editing instance (and applying changes to prefab), it's possible to keep GameObjects references to all GameObjects that are in the hierarchy under the parent (children of children too).
When editing prefab, it's still possible to keep GameObject references, but only to objects that are under the parent in the first branch (can't set objects that are children of children).
Anyway, I've noticed that editing larger FSM (~100 states) on instance is much slower than editing it on prefab so I will probably use get/find child for objects that are in lower branches and can't be set manually while editing prefab.
Thanks for the replies!