В каком контексте вы имеете в виду? Несколько заголовков в проекте или несколько заголовков, включенных в один файл?
Разбиение кода на разные файлы, когда это возможно, помогает значительно упростить поддержку. Вместо того, чтобы искать в 100 000 строк кода для точного определения одного определения функции, вам, возможно, придется посмотреть только на 500. Плюс это может ускорить перекомпиляцию, поскольку вы можете просто скомпилировать измененные файлы, а затем связать их с предыдущими объектными файлами.
В частности, для заголовков C ++ желательно иметь только один класс на заголовок, поэтому у вас будет куча разных файлов заголовков. Опять же, это гораздо более ремонтопригодно.