We are planning to extend buildout download API to provide a distributed automatic packaging and caching system so that even if original source web site is down, the buildout process can stil run. This could also be useful to build software in secured networks.
I'd strongly suggest keeping this logic out of the download API. It sounds like something that may potentially grow a lot more complex than a simple "download this URL, with or without using a cache" gesture.
In my opinion, a distributed packaging system is application logic from the perspective of a generic framework such as zc.buildout. It might be implemented by a recipe, some library on top of the download API or some other mechanism altogether, but it should neither complicate the semantics of the existing download API nor add a new one to the zc.buildout code base.