A header-less script has a control-flow statement that transfers the control to the label before the first command in the script.
Either jump 0 or jump_if_false 0 would represent such a statement. The game considers numbers that are greater than or equal to 0 as global offsets so it continues executing commands from the beginning of the main.scm. On the other hand negative numbers represent offsets that are relative to the start of the current script.
A visible effect of this bug is that the game "reloads" (as if a new game started).
Possible solutions: add opcode 0000: as the very first command to shift the following commands and allow the compiler to represent all offsets with negative numbers:
end // error, jump to offset 0
end // OK, jump to offset -2
If you need to bypass the compiler check use commands jump 0 or jump_if_false 0.