The function will potentially be called more than one time, because _Flag will reinitialize to zero, even though the game may have saved _Flag as 1. This would even be the case if _Flag was instead %Flag--defined as a global variable instead.
When you set the value to 1 it should remain 1 and be saved as 1 until you change the value with a script call. It seems the engine is able to recognize new variables during the initialization and saving process: variables of characters that are already saved for this character (or already loaded) won't be reset to their initial value; the engine will never read the value from the script again, only when the variable is yet unknown to this character.
Edit:
Thanks, Tinkerer! Always good to have certainty.
@Ameranth: Setting characters on- and off-stage is the last thing to test, I guess. Would be more safe than destruction, I suppose. But will it have the same power?