Its quite simple, think of it this way, a DNS entry does not have to point to the same IP everywhere.
Place your cache machines at a ISP, have them assign its IP to your preferred dns name, thats about it.
The rest like distribution works like a reverse riverbed with a master mirror, rsync or the likes.
And of course this can all be done with nginx at all locations.