can this be Iterator[Future[T]] => Future[T]

Just never call it on an empty iterator and you can remove the flatten.