I think I remember having the same problem once with MMF2. Fastloops and overlaps/collisions just refused to work logically.
I don't remember how I worked around it, but maybe try moving the actions out of the loop?
loop trigger #0
+ flag 0 of bullet is off
+ bullet overlaps enemy
--bullet: set flag 0 on
--enemy: set flag 0 on
flag 0 of bullet is on
--bullet: destroy
flag 0 of enemy is on
--enemy: destroy
That's just a guess based on a suspicion that the bug is due to the way collisions are handled.
Edit: wait, that probably wouldn't work.
Instead, assuming your bullet movement is handled in a loop, try stopping the bullet so that it doesn't hit any enemies in the time it takes for the collision or whatever to resolve.
So
loop trigger #0
+bullet is facing direction 0
--bullet: set x position to x(bullet)+1
would become
loop trigger #0
+bullet is facing direction 0
+negated(bullet is overlapping enemy)
--bullet: set x position to x(bullet)+1
while your collision code is the same as you originally posted.