Ну, есть две основные школы мысли.
Первое, это максимально сократить количество HTTP-запросов.Это говорит о сокращении ALL CSS-файлов до одного монстра.Лучше скачать 400 КБ один раз, чем несколько файлов по 50 КБ.(и то же самое для JS).
Другой - объединить, где это необходимо, но не дальше.Если у вас есть 100 КБ CSS, которые нужны только в одном разделе сайта, нет причин замедлять работу остальных пользователей сайта.Это особенно верно для JS, так как существует множество сайтов, которые включают jQuery (например) на каждой странице, потому что 10% сайтов используют его.
Я думаю, что это комбинация двух.Если я использую код на 50% сайта или более, я включаю его в «основной» файл.Если код небольшой (менее 5 КБ или 10 КБ), я включаю его в основной файл.В противном случае я разделяю его на отдельные файлы.
Вся причина этого в том, чтобы улучшить пользовательский опыт.Вы можете сделать гигантский перебор и загрузить все css и JS в 2 соответствующих файла при каждой загрузке страницы (конечно, она будет кэширована).Но если целевая страница не нуждается в 50% этого кода, вы без необходимости замедляете страницу, оказывая наибольшее влияние.
И именно поэтому я считаю, что лучшим решением этой проблемы является анализ ситуации человеком.Они могут искать дубликаты и абстракции.Они могут посмотреть на потребности страницы / сайта и определить лучший сценарий.Если вы не хотите, чтобы ваша программа сделала это (что было бы сложно), она не даст лучший результат (но опять же, есть разница между хорошим и достаточно хорошим) ...
Это все равно мои 0,02 доллара ...