It's not a bug... at least not the bug you think it is. The system command doesn't pick individual instances. Look up the "expression rule" here:
http://sourceforge.net/apps/mediawiki/c ... ct_picking
Since you're not picking a specific instance, Construct picks the first instance in the layout, that's why it's only reacting to one of them. You can guarantee that it will check each in turn with a loop, like so:
A For Each loop here will cycle through each instance one at a time so they can be picked by the system condition.
But... there does seem to be a seems to be a minor bug with how the condition is displayed. Instead of showing pointx and pointy, it's showing object and pointx.
As for the Else, it's working properly, but since the order of events in your example allows for changing the text to "no collision" after it's already been changed to "yes collision" then if you're overlapping one the next For Each loop can say "this one's not colliding, change the text to blue and say it's not colliding." You can confirm that by the fact that if you leave the Else in then it works properly only if you are overlapping the point of the last instance instead of the first. This fixes the issue:
Order of events! It's important! It might seem confusing at first but you'll get the hang of it.
Hope this helps