In thinking about this, I have the following issues/questions.
I have not studied the AN2295 code in great detail, I have used it several times with success.
I believe it operates with the interrupts disabled, polling the SCI for received bytes.
This would be necessary due to the interupt redirection mechanism, I believe. Can USB function with interrupts disabled? I haven't dug in far enough to understand the USB mechanisms in the S08JM.
One modification I implemented in AN2295 for a specific application was a checksum of the operating code.
The bootloader verifies the checksum before jumping to the user code.
The PC side application computed and embedded a checksum in the code that was uploaded.
I also located a jump-in address that the application could jump to if certain conditions were met. This way the bootloader could be initiated from the user code. This was required due to the FTDI USB/serial IC in use, Windows would never locate the COM port in time to initialize the bootloader, and the port-pin test was not possible in this application. So I modified the PC application to send a command thru the serial port which triggered the main application to jump to the bootloader.
Another application used a generic port pin instead of IRQ to check if the bootloader should run, this just required initializing the port direction and pullups.
Just some ideas for features...
Thanks
Bob