The non-signed transactions are committed separately from the signatures.
What do you mean? They are committed in the same block, at the same time, right?
Script versioning means that it is easier to change the script language.
The position of a transaction in the blockchain should define which version of the rules is applicable to it (in particular,
which version of the scripting language it uses).