> why can't more C/C++ projects be distributed as source amalgamations
* Build time and memory increases.
* Debugger locations are less clear. MSVC debugging doesn't even work past 64KB lines.
* You still need to link it anyway when using as a library.
* Linker optimization has improved (especially clang).
* It's more difficult to modify.
SQLite has some decent reasons for it especially historically; I'm not sure those reasons are as strong for other projects.
For applications, distributing binaries is even more convenient than source code (assuming they exist for your platform).
And for libraries, "header-only" can be more of a convenience than "single-file".