Each instance of mitk::StateMachine uses GlobalInteraction::GetInstance() in order to get its own startState.
This only works if this global instance has been properly initialized previously, e.g. by QmitkregisterClasses().
However, as it is also possible to create non-static instances of GlobalInteraction that can be used completely without the global instance, this can lead to problems. This global instance is not initialized when InitializeStartStates (unsigned int timeSteps) is called and returns NULL.
The result of this is that simply nothing happens (how could without a start-state). There is no warning or anything.
One could say that it should not be a problem to call QmitkRegisterClasses.
However, it is possible to use different instances of mitk::GlobalInteraction with distinct StateMachine.xml.
In this case, the start-states might not be the same which would lead to invalid Statemachines.