At first this might seem as odd behaviour, but if you think of it - it is just as event structures work. They queue events to be handled whenever the structure is called, and this queue is made when the VI containing evstr enters running state. Now, if you close this VI before all the events are handled, there would be some leftovers in the events queue (that's also one reason why we should unregister dynamic events when leaving VI with evstr). You can easily see this in Event Inspector Window (very neat tool in 2013 by the way). And that would be something I'd expect - if I'd treat event structure as simple FIFO, I wouldn't want it to lose any data I put into it, so I expect to get next event the next time I call this particular structure. Of course, only if this VI would never leave memory during the application run - I strongly believe that making dynamic calls to this VI and closing its reference afterwards would also clear the events queue (easy to check, I just don't have time for it right now).
For more fun: If you make this VI preallocated clone reentrant, you can be sure that there is new events queue for each clone. If you'd make it shared clone, you might, or might not, come across one that already has something waiting to be handled.
However, I can see other issue there, and that is the order of events. I've seen many strange cases where order of events were just not as I would expect it - i.e. the value change of one control called after, not before, mouse down event on other control (this is kind of unfixable issue in one of my applications). This is one of those cases, I think the right order should be value change on focused control first, and then value change on the one with key binding.