Reuse is important, but realistically, how much code is actually re-used? Sure, you have a lot of meaningful subcomponents or libraries that should be correctly isolated for re-use (and really, for testing purposes) but moving a state machine into the core of an application and away from segmented components and libraries hardly harms whatever reuse is likely to happen.