One advantage is that you don't need to mess with build systems for configuration, instead put the configuration defines before the implementation right in the source code.
Another advantage is potentially faster compilation if you put many implementations into the same implementation source. Same idea as unity-builds basically. Even though you're using dozens of header-only-"modules", the compiler only builds a single file.
In the nasty real world, these build systems introduce more issues for more people. Then linking the shared object or DLL adds management issues, naming issues, arch etc. But that's for separate dependency building as a binary.
Has every one of these side compilation steps gone perfectly for you? No. At some point they wasted your time.
This concatenation-build step is done reliably beforehand, even if simple, can be assembled and be tested by the releasing party. Saves the user some trouble.
A pre-built binary is about as easy if done sensibly. Boost is mainly header only but has some libs still requiring linking, which requires you digging into that library's particulars.
All of those are steps that have tradeoffs in time, attention, flexibility and risk.
Careful of that word "... just". Just do this! I can just do that! The full hassle/cost requires pulling out of just the compile step, in this instance.
I guess my point is that I just don't see the benefit of concatenation here.
You can also group the stable headers into a different implementation source file from the headers that change frequently.