So here is the thing if start questioning FIFO order that we should question everything else like does removing listener actually removes it ? Do unhandled errors get logged ? Does messages get dispatched to all of the listeners etc.. in total it's about 15 tests in event core. Now next patch that wait's this one introduces `map`, `merge`, `expand` so we'll have to repeat all of these tests per API.

What's more important is that nothing using `filter` really cares about FIFO order so we don't even need to guarantee that. It's just test @erikvold commented on makes an assumption that it is FIFO order and if it's not
then test will break.

So even if do change implementation of `filter` and it's no longer a FIFO order  then this test will break and we'll have to either update test or make new implementation of `filter` respect FIFO.

So in this case I'd rather change this test case to remove FIFO assumption than commit to whole bunch of guarantees that are not even essential to a use case I'm trying to get to.