Another thing I think would be helpful is to have an exclusive divergence, like a switch case() for SFC. Note the transitions below the bus in this divergence, in addition to the one you'd normally expect above the bus. A lot of SFC implementations don't support this. You'd think you could simulate this by having an empty state just below the divergence bus, but no. By then you'd have committed to all the divergent threads so you have to run them all to completion to reconverge. I'm thinking you'd have to have a dedicated exclusive convergence to go with the exclusive divergence so that it knows it can proceed with only one thread complete.
Interesting SFC language twist. Your point about an "empty state" not semantically/logically the same - that is a good point. "Cascading Transitions" may just need to be a thing. Why stop at 2 levels deep, Cascading Transitions could be a huge tree? Not sure why we could not support that concept - it's all TBD, but noteworthy.
Generally, yes, the internals of each "stage" and each "transition" would be coded in different window/editor. Similar to DL, where the Stage Frame is a Split View, where the "Stage Flow View" is on the top and shows the stage flow with Stages and Transitions, but the bottom view is the "internal logic" of that "stage" (or for Designer, the Transition logic when top view cursor is on a Transition).
In DL, this bottom "internal logic view" is just a Ladder View.
Technically, the "internal logic view" could be LD for the Stage's logic or even another Stage PROGRAM (that itself is a split view - ha!). For transitions, could easily be a MATH expression that results in a zero (false) or non-zero (true) condition. or ? Thinking out loud.