Panastra -
Your results are correct, TestStand performs the switching first for a step and then executes the step, which includes the pre-expression. You mention that you have a "step" that sets the Station Global variables using a LabVIEW VI and then a "step" uses these in its preexpression. Are these the same step or two different steps?
You may not know this but the TestStand expression language in 3.1 has some new switching functions, such as, SwitchConnect, SwitchDisconnect and SwitchFindRoute. These could be used in any expression that TestStand evaluates. Also, if you passed a sequence context to LabVIEW VI, you could evaluate an literal expression in LabVIEW against the context and the expression can have switching function in it. The switching functions would operate within TestStand.
Scott Richardson
https://testeract.com