Hi, I think this has to do with SDL and xevents. It's possible SDL can lose events if they come in too fast. Since it tries to prevent flooding of the event queue. Well it does for mouse events anyway.
I can't remember if they fixed/changed stuff for the recent 1.2.14 release... but it's worth trying out if you haven't already. Also, maybe try out the 'xev' command - which prints x events. Then you can see if it is printing out all the events at the X level. man xev cu,