нет. зная программирование, я не могу понять, зачем это нужно. header-only тут ни при чём. их тоже не используют в каждом файле. конечно, если мозга хватает на нормальное разделение проекта на библиотеки. да даже просто на группы файлов, объединённых логически.
значит нужно сначала посмотреть видео, услышать как устроен комитет, как и что туда тянут, и зачем, и какие вопросы решают, прежде чем делать вывод - все не нужно, тянут все то попало, итд, а не по себе судить
«Правильное» (в вашем смысле) дерево include возможно только для непосредственной бизнес-логики программы.
Всё остальное — различные контейнеры, логгеры, таймеры, обработчики ошибок и пр. инженерщина — неизбежно будет пускать свои корни в каждый первый объектник.
Обычно эта инженерщина составляет очень существенную часть программы (80%, если по Парето), потому что C++ это вам ни разу не DSL, а ровно наоборот.
А учитывая, что часто такие вещи как раз пишутся header-only, постоянная перекомплиция становится суровой реальностью.