The agent upgrade doesn't actually need
to happen at the same time. The worst that will happen with an old agent is that new deployment features (for example, masking variable values) will not be available against old agents.
We have avoided automatically upgrading agents because they could well be running on production machines. We have generally considered that it is important not to make any
changes to potential production machines without requiring some form of explicit user action. For example, there is a very small, but non-zero, risk that an agent upgrade will result in the target machine requiring a restart before it can be deployed to again.
We could consider providing a configuration option to allow automatic agent upgrades, but obviously we have to balance that against all of the other features we'd like to implement.
One feature we have added recently is that in the list of machines that will be affected by the deployment, we flag out-of-date machines, and provide a link to the upgrade operation: