For example:
The last run didn't clean up, or changed something global.
New runs don't work because some expected state is missing that had been set up on a previous run.
Blowing the agent away each time reduces the chance that something previously run can impact your current run.
This is at the cost of pulling from networks each time. You can reduce those issues by adding network caches for modules/dependencies.