Если расставить точки над "i", то вся эта возня нужна лишь для того, чтобы заткнуть дыру в доброй половине компиляторов Си - они запихивают все функции откомпилированного исходника в библиотеку моноблоком, и, соответственно, при использовании хотя бы одной из них - тянутся все остальные.
У меня тоже есть собственное решение - утилита smartlib, включенная в дистрибутив XDev. Она разрезает исходник по "линиям разреза", добавляя к каждому куску заголовок до "линии заголовка" автоматически, и не нужно вручную пихать каждую функцию в отдельный файл.
Именно так построены все существующие на данный момент библиотеки ZXDev. Скоро сюда добавится библиотека NewSupercode (я адаптировал для ZXDev пока что только 6 подпрограмм).
Подробнее в теме "Умная" линковка (smart linking) в ZXDev/SDCC.