I just committed code that revamps DISTFILES handling completely. If really necessary, a distfiles entry may look like filename{url} and it will fetch that url from MASTER_SITES into resulting filename.
Of course, it's still a better idea to coerce upstream to have correct archive names, but this may occasionally prove simpler... Also, this means the FETCH_CMD is now supposed to work like ftp(1), in partical support -C -o filename url. If you have a specific alias that doesn't, well, tough shit. Writing a small shell script that does the conversion shouldn't be too hard. (see getopt(1) for starters).