Changed the topic because it's completely different.
Distributing clients among mirrors depends on the repository architecture. If
it's just a bunch of files it can be done on a file-by-file basis, as is done
by several repositories. However when there are relations to be obeyed, such as
package dependencies and versions, it cannot because a broken mirror may have
only part of what's necessary. In other words, the repository must be
consistent. This is the case for most linux distros.
Having the package manager on the client choose the mirror is usually better,
and it should have a list of known-good mirrors, which seems to be already the
case. The list of mirrors could be a package that is always installed and
updated. It can come configured with a general priority by country or continent
pointing to the bigger and most reliable mirrors. The default can be overriden
by the user or other criteria, such as specific software.