Some updates going through SquidUpdate have been sending some URL purges twice per request for years. According to bblack, this is an ongoing problem.
The CRUD cycle for pages and files should be audited. I'll also have too look at what extension hooks are doing too.
It might also make sense to have a generic method that batches all purges for a request and de-duplicates/runs them at the end. Each separate purge() call already de-duplicates now.