Обычно просто указывают в одном файле стили всего сайта с его десятками разных типов страниц. Это удобно потому, что браузер загружает стиль один раз, а после этого уже обращается к кэшу, что ускоряет время генерации страницы.
На счет непонятности, тут два подхода: во-первых, все приходит с опытом, меня тоже ужасали сложные HTML/CSS-файлы. Со временем вы будете разбираться в них все лучше и лучше понимать их закономерности.
Во-вторых, тут нужно понять, что есть дополнительные языки типа SASS/LESS, которые предоставляют дополнительные возможности и позволяют хранить каждый раздел в отдельном файле, а затем генерировать один сжатый CSS-файл.
Ну и третье - да, в многих CSS-файлах удаляются все ненужные пробелы, чтобы уменьшить вес файла, что ускоряет его загрузку по сети. Иногда из-за этого файлы тоже выглядят ужасно.
Ну и наконец. Даже если вы проверите все страницы сайта и не найдете там некоторых классов - есть такая привычка программистов/разработчиков, написанная кровью: "Работает - не трогай". Иногда какой-то элемент со страницы убрали, а вот в CSS - забыли. Вот и выясняй, нужен этот класс или уже нет. Поэтому иногда "не рискуют". Кстати, большая проблема, когда пытаешься расчистить подобные "авгиевы конюшни". Можно даже сделать поиск по всему сайту, убедится, что элемента с классом special-header нигде не используется и удалить его. Но внезапно, оказывается, что этот класс добавлялся к элементу динамически с помощью JS и автопоиск не заметил этого и привет, на некоторых страницах поехала верстка.
В общем, не бойтесь, а работайте над усовершенствованием и со временем все сложное будет касаться очень простым и логичным ;-)
современные сайты пишутся на основе CSS фреймворков. Например на основе BootStrap. В таком случае результат выходит быстрее, а сама страница выходит гарантированно кроссбраузерной.
Это не всегда так.