This is actually by design at the moment, but it's a really tricky one to get right. I'm aware of issues that it causes, but at the same time sometimes it's desirable to have it loop for you as well. It's not identical to a 'For Each' loop either, since it picks the colliding pair of instances at a time. Also, changing it could subtly break existing projects.
I think it would be worth putting it back to the non-foreach way though, I can imagine it would be confusing.