Если шапка и футер везде одинаковые, зачем их каскадить? Они идут как независимые блоки, вот , вот footer, везде одни и те же, ну и всё, оставьте как есть.
Если блок не зависит от родителя и он повторяемый, дайте ему "собственное" имя со своими собственными "потомками", и повторяйте везде, где хотите