ES5 getters are definitely slow still, but after trying this out I think this might still be worth it.
Don't you think most event handlers only access a few event properties? Yet the $.event.fix loop accesses them all. The fix loop is often a bottleneck on its own without a forced layout.
The scenario I've seen this bug occur a few times is toggling a class on mouse enter/leave. So this bug forces a layout, then the event listener simply toggles a class based on the event.type which sets the dirty flag again. In this case that extra layout is completely unnecessary, even the $.event.fix loop copying everything was unnecessary.
The only problem would be the ES5 getters. But at least in FF/chrome when only calling those getters 0-10 times it seems worth it.
Would you be interested in a pull request to at least see it in action?