На этот вопрос уже есть ответ здесь:
Полезно ли включать заголовочный файл более одного раза в C или C++?
Если этот механизм никогда не используется, зачем компилятору беспокоиться о включении файла дважды; если бы это действительно было бесполезно, не было бы удобнее, если бы более новые компиляторы следили за тем, чтобы каждый заголовок включался только один раз?
Редактировать:
Я понимаю, что существуют стандартные способы выполнения таких действий, как include guardsи pragma once, но зачем указывать даже это? Разве компилятор не должен включать файлы только один раз по умолчанию?