nontrivially increases the required complexity of your build system.
No it doesn't. It only requires a single rule in your Makefile. Something like:
%.c: %.cpre preprocess.pl; ./preprocess.pl <$^ >$@