This is designed behavior, with a legitimate business reason.
The reason for this behavior is that with the changes that can be made to provisioning because of includes, variables, etc. the scripts are by nature fluid. For enterprise level deployments you want to have a very static, consistent process. When a provisioning template is run a static copy will be created. This copy will not change. You can trust that the results will be consistent, because at this point it is basically a locked down script.
In general the main copy should be used for testing and after any changes have been made, and then the locked down copy (that can be trusted to be consistent and unmodified) should be used for future deployments. If you would like to see the option of not creating a static copy (which is especially a useful idea during creation and testing, when you might run the script a dozen or more times with no intention of using it for large scale deployments) I would recommend logging an enhancement on the enhancement request portal.
I hope this gives an idea as to why the behavior is how it is. I'm a big fan of having just about everything being an option. Although that isn't always possible this is one that I think a lot of people would vote for it, which goes a long way toward determining what happens in future releases.