Это зависит от того, сколько функций находится в одном заголовочном / исходном файле. Если вам нужно включить 10 файлов, чтобы, скажем, что-то отсортировать, это плохо.
Например, если я хочу использовать векторы STL, я просто включаю их, и мне все равно, какие внутренние компоненты необходимы для использования вектора. GCC включает в себя 8 других заголовков - распределитель, algobase, конструкция, неинициализированный, вектор и bvector. Было бы больно включать все эти 8 только для использования вектора, вы согласны?
НО внутренние заголовки библиотеки должны быть как можно меньше. Компиляторы счастливее, если они не содержат ненужных вещей.