Reaction search always starts with an *arbitrary* innermost state and then first works its way outward. Only when the outermost state has been reached is the next innermost state checked for a suitable reaction. This behavior stems form the fact that all reactions defined in outer states are "inherited" by their direct and indirect inner states, as mandated by the UML standard.
Oh, I completely missed this point too. This describes the issue I encountered long time ago: http://lists.boost.org/boost-users/2008/08/38931.php In that case an out state deferred some event, while one of the inner orthogonal states wished to process it - but the event never reached this inner state. Now I understand that the other orthogonal states actually *deferred* that event ("inheriting" this definition from the outer state)...