"In other words, if my_current_message <> 0, I can be sure this is the second time this script has been called this turn (unless the script is on a 8-turn cycle)."
Not necessarily. There are a number of things that can cause a script to be called in a turn. A ritual of sanctification, or someone walking on it, or its blocking someone's movement can cause it to be called. Also, in a combat turn, scripts are called every time someone moves (so if someone moves 5 spaces, the terrain scripts are called 5 times).
Your scripts need to be robust enough to work properly no matter how many times in a turn they are called.
"So, I can only count on variables staying the same in a single state (and any other states I call in that state)?"
A variable in a script is only visible in that script, but anywhere in that script. (So it can be accessed in multiple states.)
When the script is unloaded (for example, a town script when you leave that town), that variable's value is forgotten.
Any value you want the game to remember should be stored in a Stuff Done Flag.