I don't think it's a bug, and I'm pretty sure I've figured out what's happening.
Likewise, it's not the speed, I slowed it down to 200px and it will still do it. It just does it faster when it's fast.
Here's what's happening:
On Collision only registers once when objects overlap. If they continue to overlap, they will register nothing for On Collision after the first tick of overlap.
Your sprites are all Per Pixel collision. On Collision only triggers when the very front corner of Mega Man's shoulder touches the black portion of your barrier. Then the angle flips.
Sometimes the Mega Man sprite can be in a position where it will trigger an On Collision with a barrier and flip... but flipping triggers On Collision with the back corner of Mega Man on the barrier behind him, so he flips again.
Since he's triggered On Collision in the previous tick with the first barrier, it will no longer trigger because Mega Man has moved into the barrier by then.
So in other words, it's a flaw with your design... not with Construct. You need to make a more refined design that will do what you expect it to.