Das liegt an dem Event-Interpreter. Wenn ein Script-Befehl im Event false als Rückgabewert hat, wird das als "Fehler im Script" interpretiert und der Interpreter führt das Script nochmal neu aus, weil ja Fehler im Script plötzlich verschwinden wenn man ein Script nur oft genug ausprobiert oO

Ist jedenfalls ein ziemlich merkwürdiges Feature des Interpreters, bei dem die Entwickler bei Enterbrain sicher nicht ganz bei der Sache waren. Die einfachste Art und Weise das zu umgehen ist ans Ende deines Script-Befehls ein true anzuhängen.
Code:
@x = false
true
Ansonsten kannst du auch das Problem an der Wurzel packen und den Interpreter entsprechend umschreiben:
Code:
class Game_Interpreter
  alias eval_event_code command_355
  def command_355
    eval_event_code || true
  end
end
Das in den Script-Editor über dem Main-Script einfügen.