Веб-браузеры часто поддерживают пул рабочих потоков для загрузки и назначают для них загрузки по мере их появления. IIRC HTTP RFC может кое-что сказать о том, сколько одновременных соединений вы должны установить с одним и тем же сервером одновременно: слишком много - это грубо.
Если несколько запросов поступают на один и тот же сервер и поддерживает keep-alive (что делает почти каждый), то это может быть лучше, чем рассылка спама несколькими одновременными запросами. Общая идея заключается в том, что вы используете одно TCP / IP-соединение для нескольких последовательных запросов, тем самым сохраняя затраты на рукопожатие. Практический результат, в моем опыте реализации классов Java HTTPConnection, заключается в том, что вы вводите небольшую ошибку, связанную с не всегда правильной очисткой состояния при повторном использовании соединения для нового запроса, и тратите значительное время на изучение логов / сниффера данные; -)
libcurl, безусловно, поддерживает keepalive (по-моему, он включен по умолчанию).