Ну упрощая... Ты выносишь в отдельный модуль некоторый законченный функционал. Эдакая библиотека. Она должна быть абстрагирована от прочего функционала. Её хедер предоставляет лишь API этой бибилиотеки.
И использует этот модуль соответственно такие же законченные "бибилиотеки". Т.е. их хедеры инклудятся в сишнике, т.к. они могут быть не нужны пользователям myheader.h