Допустим так или иначе. Но это не решает вопрос _ручного_ построения зависимостей. Где легко можно что-то упустить. По-хорошему бы такой механизм, что если мы включаем #include "module.h", то текущие все объекты из данного файла уже зависят от включаемого. Но C-preprocessor не позволит построить список зависимостей (из-за lazy evaluation), я не вижу способа. Альтернативой было бы инициализация при первом использовании, но помимо прочего -- как это безошибочно сделать на C (без вручную вписанного куска кода в каждую функцию)? Похоже тоже никак. В C++ можно выкрутиться классом-прослойкой...