Running mirrorselect in deep mode causes it to download a 100k test file from the server. However, mirrorselect never checks if the file was downloaded correctly. So if an HTTP server is having problems and returns an error page that's only 1k instead of the file that is 100k, mirrorselect is going to think that the server is really fast and put it at the head of the list, instead of correctly realizing that the server is having problems and should be dropped from the results. I suggest checking the result from urllib to see if the file was reported as downloaded correctly, and then checking to see if the correct number of bytes were received; if you wanted to get really thorough, you could also check if the file downloaded matched an MD5 or SHA1 checksum.
Thanks! Should be fixed in app-portage/mirrorselect-2.1.0-r2, please test :)