Hello again

Maarten, thanks for your fast reply.
I would recommend to keep the bootloader in low memory and relocate the application instead.
... and by doing that, one never has to erase the page with the IVT when copying in a different application. Is that the point you're trying to make here? (my CODE is page-erasable flash, as you guessed)
The bootloader then needs to forward all interrupt vectors to the application area. This can be done in assembly. This can include detection if your in the bootloader and jump to either the bootloaders ISR or the applications ISR. If your bootloader can do without interrupts things are easier though.
... because if the bootloader doesn't need to use the interrupt, you don't need to perform any detection. You just forward the vector blindly to the application's area.
How do you intend to overcome the problem of both the bootloader and the application using the dma_ISR and "don't overwrite each other"?
Let's for a moment forget about the entire crtstart and relocation business. Assume we compile a project with a proper main() and make use of the default startup code. We then link that project with --code-loc 0x100. >From what I can understand by reading the docs and from what I've seen in the map file, the IVT also gets bumped up by 0x100. This means that, in order to make use of those ISRs, we definitely need some forwarding code. Correct?
As ever, thanks muchly for the assistance