When downloading large files that are available from several mirrors, it would be handy to allow adding an additional URI to the task. Downloads could be done in parallel from all of the URIs in the list, which should allow for a large speed improvement over downloading in parallel from the same host.
Possible problems:
User can specify a URI that does not contain the same data. Some data could be downloaded from multiple URIs to verify that they match.
The current code probably isn't designed with this feature in mind and might require large changes.
How many parts would be used for each URI? For example, if 2 URIs are specified, does each receive 1/2 of the total allocated for the task or does each receive the number allocated, meaning that there are actually 2x as many streams as specified?