The ebuild files should allow specifying multiple mirrors for pulling the sources. For example, in the case of net-mail/tmda, the software maintainer usually keeps only the latest release in foo.bar/releases/. As soon as the next release comes out, the previous one is moved into foo.bar/old/. This means that until the .ebuild is updated for the new release, it will contain an invalid URI for the sources. Given that currently SRC_URI treats a list of URIs as multiple files, that need to be downloaded to build the package, implementing this feature would not be too easy. As as starting point, I propose adding optional alternate URIs in variables SRC_URI[1-9]. This will limit the number of supported backups to 9, but I think that this is *way* more than enough.
Can't you just list *both* possible URIs in SRC_URI? The downloader should try them both in succession.