Почему нельзя разместить определения в .с файле?
Можно, но если несколько .с файлов зависят от одного набора функций, то лучше вынести этот список в отдельный файл чтобы при добавлении новых функций требовалось изменить только .h файл
А не все .с файлы использующие этот "набор"