
Ok, I misunderstood how local transitions work. An innermost state where any of its direct *or* *indirect* outer states define local transitions behaves as if all those local transitions originated at the state itself. I guess we'll have to go the sc::local_transition / sc::simple_state::transit_locally route then...
It seems I'm the one who misunderstood. I've dug a little deeper and your are right that the difference between local and external is just one level of entry/exit actions. So your approach of adding an intermediate state does work. From the UML specs it's hard to extract the exact definition of a local transition. http://www.johndeacon.net/UML/UML_Appendix/Generated/UML_Appendix_behavioral... discusses this subject and warns about the pitfalls of using composite states to de-clutter a state machine. [I think there is a more general concept here, the same as having an nth level history, a transition could have a level specification, n=0 is external, n=1 is local, and n=infinity is the way I misinterpreted local transitions. I need some real practical examples ...]