GOTOs are different than JMPs. Forward GOTOs will always execute in-line when enabled and will set the PLC CPU's program pointer to the LABEL address, and just keep on executing from there. Backward GOTOs behave similar to how FOR/NEXT, WHILE/WEND, REPEAT/UNTIL backwards looping works, by analyzing the current .TimeSlice and behaving based on those rules. So it may immediately jump to the LABEL, or it may wait until the next PLC scan do start executing from that LABEL. Look up .TimeSlice in the Help Search to learn more about backward GOTOs.
JMPs are a different beast altogether. They just ENABLE/DISABLE stages. No actual "logic jumping" occurs. When you JMP to S10 from S0, S0 becomes DISabled, and S10 becomes ENabled. That means that whenever S10's logic is hit (if it is "below" S0, then on THAT PLC scan, if "above" S0, then on the NEXT PLC scan), it will run. Since S0 is now DISabled, S0 will NOT run on the NEXT scan.