I may be wrong here, but isn’t it the case that if you have a component selected for upload in a change set and you alter that component, you would have to delete the component from the change set and re-add it to have the latest version? Or, does the change set pull the component’s configuration at time of upload?
No, the “contents” of the elements in a change set will reflect the most recent version of the file until it is “uploaded”. That is, if you add an Apex Class to a change set, change the class and then upload the change set, the modified version will be deployed. You can see exactly what is in the changeset files by clicking the name to “view” the file, you will see it reflects the current state of the file.
Once you click upload, you will “lock” the files down in that change set, so if you come back to an org after an attempted deployment, change a file and then re-upload the changeset, it will be exactly the same change set (that is why we love the clone button!)
I imagine the “upload” button to be a kind of zipping process that encapsulates the set of files at that moment in time.