Если шапка и футер везде одинаковые, зачем их каскадить? Они идут как независимые блоки, вот , вот footer, везде одни и те же, ну и всё, оставьте как есть.
Если блок не зависит от родителя и он повторяемый, дайте ему "собственное" имя со своими собственными "потомками", и повторяйте везде, где хотите
когда например для какого-то класса уже что-то прописано, я по невнимательности или другой причине прописываю дополнительные свойства этому же классу, но уже в другом месте.
БЭМ
Мне оч неудобно работать с одним файлом в 1000+ строк
GULP или другой сборщик + concat
Работайте с 10 разными. Разделите css на отдельные составные файлы и собирайте сборщиком в один.
Потому что $(this) - тот элемент, по которому Вы тыкнули, посему он и удаляется.
Вам потребуется .each, чтобы циклом пройти по всем опшенам и уже в теле each'а ставить свое условие проверки