(5) Это, когда клиент - браузер. У которого единственная функция - это схоронить файл на диск. Там да, это дикость. А если ТС делает робота, который за одно соединение пачку файлов протаскивает, так чтобы и нет. Хотя я сомневаюсь, что это так =)
(6) Работа с пачками файлов тоже дело не из простых. Если файлов в пачке много или размер у них немаленький, то иногда можно и сервер повесить такими запросами. В этом случае надежнее отдавать поштучно.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший