Here are two ways that I have handled it, but I'm not sure it's much easier than combining the S19 files, which I do also.
For my bootloader:
I wrote and debugged it separately, and it is a standalone project. I wrote it to use it's own program segment (called 'Bootstrap'), such that it always ends up in the right location, regardless of what is linked with it.
However, once it was completed, I put it's source into a directory shared by all projects, and then #include the source in those projects. In effect, I'm including the bootloader at the source level.
For my DSP code:
The program memory of my DSP is ram, and the HC08 downloads it on powerup. A colleague wrote a program that parsed the DSP S19 file into a file of " dc.b $xx,$yy,$zz . . . "
I then #include this 'hex' file into the project, within the segment reserved for the DSP code.
Hope this helps (but I kinda-doubt-it).