Не совсем понимаю, как разрабатываются большие проекты на С++? У меня он пока средний — около 2 Mb в архиве, и уже сейчас время перекомпиляции — около 20 минут (на двухядерном 2ГГц и 4Г памяти) (а изначально так и вовсе доходило до 40, пока не сделал максимальную развязку). Ситуацию усугубляет повсеместно внедрение шаблонов, которые еще больше увеличивают это время. Все бы ничего, но невозможно же дебаггинг проводить — одно исправление — и опять длительное ожидание перекомпиляции.
Из тех мер, что предлагается, самая естественная — forward declaration, но, во-первых, она работает только с классами верхнего уровня (сделать что-то наподoбие class CFoo::CSubFoo; уже нельзя), а во-вторых, и там есть подводные камни:
Google C++ Style Guide/Forward_Declarations.
Разработчики языка вообще в эту сторону смотрят?