And hopefully my last addendum (sorry about the spam). I think these are the relevant specs. (Emphasis in quotes mine.) Apparently the specs used to match the not-IE version.

http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget-addEventListener
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget-removeEventListener

> If an EventListener is added to an EventTarget while it is processing an event, **it will not be triggered by the current actions** but may be triggered during a later stage of event flow, such as the bubbling phase.

> If an EventListener is removed from an EventTarget while it is processing an event, **it will not be triggered by the current actions**. EventListeners can never be invoked after being removed.

But the new one matches the IE version, per my read.

http://dev.w3.org/2006/webapi/DOM-Level-3-Events/html/DOM3-Events.html

> Next, the implementation must determine the current target's candidate event listeners. This must be the list of all event listeners that have been registered on the current target in their order of registration. [HTML5] defines the ordering of listeners registered through event handler attributes. Once determined, the candidate event listeners must not be changed; **adding or removing listeners does not affect the current target's candidate event listeners.**

Given the IE one is, honestly, less insane, I'm happy to change this patch to follow that version. I found some chatter on #whatwg (very recently, even) that seems to suggest people think the new spec version (i.e. IE's) should be correct?

http://krijnhoetmer.nl/irc-logs/whatwg/20130724#l-609