Earlier quoted context omitted.
I always thought it’s good practice in C/C++ to have only one translation unit in release builds e.g. SQLite amalgamations, instead of relying on LTO. It also speeds up compilation because it isn’t recompiling the same header files over and over again.
It's a cute idea but just not scalable. It doesn't speed up compilation because separate translation units can be compiled independently and cached.
Obviously it’s not suitable for dev builds, I don’t think anyone uses it for that. For release builds you would want to clear caches anyway.