Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ну а что тут такого? Как-никак — пересобирается полная программа, а не набор заплаток, собираемых в рантайме. Всё в порядке — чудес не бывает. Сборка делается либо в компайл-тайме, либо в рантайме. Но её же всё равно нужно сделать!
Проблема в том, что перед компиляцией любого файла в C++ сначала делается препроцессинг, и даже самый мелкий файл после включения в него всех хэдеров превращается в многомегабайтного монстра. Что самое поганое, парсинг каждого хэдера производится заново после включения его в каждый cpp-файл

Учитывая еще зависимости между хэдерами, все становится совсем плохо. (я знаю, что эти зависимости можно и нужно уменьшать — но на это уходит лишнее время, и это возможно не всегда).
В качестве пищи для размышлений советую сравнить компиляцию примерно одинаковых по сложности прог на VC++ и на C#. Разница по времени компиляции обычно на порядки, и совсем не в пользу C++