I also found this "amalgamate" script on GitHub, intended to allow creating such amalgamations from C/C++ projects:
https://github.com/rindeal/Amalgamate
Which seems interesting, however when I tried the FreeType example, there seemed to be some preprocessing issue, such that some function definitions are conditionally excluded even though they are called later. I didn't have the time to find out if this was an issue in the original code or if the amalgamation script introduced it.
In any case, such single-C programs are very useful for quickly testing tools, so having more of them would be great.