Wow, you're right. I can reproduce this problem!
Either I did some really shady testing when I implemented this, or the behavior of iOS / AIR has slightly changed, causing my old logic to fail. Interestingly, I could only reproduce this on an actual iOS device, not on the iOS simulator.
However, it was an easy fix. Just git pull
the latest Starling version, and it should work as designed.
Or simply find line 365 in TouchProcessor.as
and add:
// purge touches
_currentTouches.length = 0;
_systemGestureTouchID = -1; // <== THIS IS NEW
Please give it a try! I hope the change fixes the problem for you. 😃