Actually that's a cool workaround, but I still don't get why should the control mark Selector's SelectionChanged event as handled.
I'll quote MSDN
There is no absolute rule for when you should mark routed events as handled, either as an application author, or as a control author who responds to existing routed events or implements new routed events. For the most part, the concept of "handled" as carried in the routed event's event data should be used as a limited protocol for your own application's responses to the various routed events exposed in WPF APIs as well as for any custom routed events. Another way to consider the "handled" issue is that you should generally mark a routed event handled if your code responded to the routed event in a significant and relatively complete way.
According to these guidelines, the tab control should not mark the event handled, and then everything will be good.
Unless I'm missing something here?