[an error occurred while processing this directive]
файлы компилятся отдельно друг от друга, поэтому никакого "второго прохода" нет. Конструкция #ifndef исключает повторение хедера в рамках компиляции одного файла.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)