Вот по описанным причинам ребята и делают всё в одном файле :) Тут выбирать что удобнее именно для себя — разделять файлы и перекрашивать по необходимости вручную каждый или же бояться тормозов программы, но менять любые стили сразу везде. Тут можно еще порекомендовать написать свой скрипт/экшен для подобных целей, готовые мне не встречались (хотя вопросы периодически задают и здесь и на иностранных ресурсах).
А про хранение файлов напишу вкратце.
Если проект большой, с задачами разного рода, то делается папка big-project-name. Внутри неё лежат папки по задачам: banners, icons, site и т.п. В каждой папке конкретная задача. Если проект простой и путаться негде, то можно не разделять на подпапки. Все названия папок и файлов я всегда пишу с маленькой буквы и на английском, так удобнее.
Внутри папки company-site (возьмем пример с сайтом) лежат папки source (со всеми материалами, предоставленными заказчиком), img (с разной исходной графикой, которая используется в проекте), preview (или images или типа того, я в такую папку складываю макеты для согласования и расшариваю для доступа клиенту — чтобы не пересылать кучу файлов, а иметь одну папку с актуальными макетами) и любые другие служебные папки, которые могут понадобиться по ходу работы.
В корне этой папки ведется работа и находятся исходники вида name_xxxx_yyy_zzz, где name — это название клиента или проекта (указываю всегда чтобы находилось через поиск), xxxx — обозначение вида задачи (site, app, icons и т.п.), yyy — уточнение что в этом файле (если сайт/приложение, то main, contacts, news и т.п., если иконки, то их размер, например), zzz — версия файла — она может быть просто цифровой (001, 002, 024), а может быть и датой сохранения, иногда требовалось подобное (16-11-23 – год-месяц-день, удобно следить). Таким образом, получаются имена файлов sber_icons_128px_001, sber_insurance_lk_012 или ph_cafe_menu_16-10-05. Когда требуется версия с переведённым в кривые контентом, то в конце можно добавить -curved.
Я предпочитаю разделять смысловые части с помощью подчеркивания "_", а вместо пробела в словах использовать минус "-" (sber-bank_site_one-two_004).
Если собирается много файлов одной задачи, то они собираются в подпапку как описано в самом начале.
Когда собираются несколько версий одного макета, то я создаю папку old (или revisions, кому как удобнее) и скидываю туда все старые версии, а в корне задачи остаются лишь актуальные. Это помогает не запутаться в куче версий и, в то же время, держать их рядышком. Если важно сохранить даты подобных «срезов», то в папке old делается подпапка с нужной датой.
Учитывая, что я фрилансер, то мне не надо иметь кучу папок как у ребят по ссылке и думать о том, что кто-то там может не разобраться :) А в каждой конторе привыкли к разному и просто либо подстраиваешься под них, либо по-умолчанию расшариваешь папочку с макетами. В последнем своём офисе из бардака на личном компе я сделал озвученную выше структуру на сетевом сервере и все работали с файлами без дёрганья друг друга.