I have just noticed that when using the handler config option on a Ext.Button, instead of registering the handler function to the click event of the button, it manages the handler configuration independently. This means that even when you are making a call to Ext.Button.purgeListeners(), the handler function is getting executed when the button is clicked.
Well, letting it like that means that you must code for exceptions, which is a bad thing.
I don't see any points in favor of making the handler configuration completely independant from the whole events model but I can see at least one drawback: purgeListeners() is not really doing what it should, leaving behind one listener on the button. At least, it should be said in the documentation that the handler configuration is not getting cleared by the purgeListeners() method and that you need to manually delete the handler configuration to get rid of that listener.
Anyway, I don't think it would requires a lots of changes in Ext code...