A common misunderstanding that often comes up when people do file bugs with OR blocks is that OR events can run with zero instances picked. E.g.:
+ Sprite X < 500
+ Global variable "foo" = 0
-> Set Sprite X to 500
-> Play sound
Suppose all the Sprite objects are on the right (none are < 500) but "foo" equals zero. The event runs, because OR blocks run if any condition is true. But no Sprite objects met the first condition, so there are zero sprite instances picked. So no Sprite instances are changed, but a sound is played. Usually this materialises as a bug report along the lines of "the Sprite action is not running even though a sound is played".
This is by design. If it worked differently, it would mean running actions on instances that did *not* meet the conditions, which contradicts the fundamental way events work.