Setting an EventBus is a bit of a no-no, since we might change the underlying event structure - as long as we adhere to the addFooHandler declared in any HasFooHandlers interface, we can keep the actual implementation hidden away and mutable without changing dependent code.
What we are more likely to do is add a protected addHandler(Type, Handler) method, which will itself call ensureHandlers - this lets us decide how to build the handler container (HandlerManager/SimpleEventBus/etc) without making subclasses dependent on the implementation. The fireEvent is already protected in this same way.
Why do you need this? Can you not build a new event router for your specific events? or invoke fireEvent(...) for existing events? Often times when someone subclasses something like this and adds functionality, it isn't meant to be used as the underlying base class any more - be careful that by subclassing you are only adding functionality, and not changing the nature of the underlying class - if you are, you should be composing, not inheriting.
I've filed as an issue, and will update it when we change this API.