Thanks for creating the ticket (was about to do it myself but you were quicker ). Anyway the issue I faced with the FTP component was that there's no option to read files on-demand from FTP (or plain filesystem) in the middle of a route. The only way to read files is to use a continuously polling consumer, which is fine it a lot of case I guess.
Now this can be solved by having a consumer that polls once and disconnects so you can use it a content enricher. This should allow folks to download multiple files in one poll and continue the route. Hadrian suggested using it in a pipeline (using to()) but this requires a producer that can read from FTP instead of a consumer (CAMEL-3397).
Also this might be a more general issue, shouldn't all polling consumers allow for this behavior? It certainly also affects the file: component.