Hi @fanziyu
I hope you are doing well !
One scenario that I could see, is that the application will have troubles to execute any of its IRQ handlers, thus limiting its functionality.
For example if you have moved your application at 0x000_4000. If you do not relocate the vector table, you wont be able to run IRQs as expected from your application, because the core may be still expecting an interrupt to be as default, close to 0x0000_0040 , with the vector table offset from your bootloader project.
Actually, in the vector table , there is a hard-fault handler. It would be interesting , to see what happens, with your current setup, if you perform a invalid operation, that produces the trigger of that hard-fault handler. Not sure if you will be able to see hard-fault of the bootloader project executing. If you do, maybe you will be need to add further steps to run and restore your application , but I do not see purpose on that effort, as the best will be to relocate the vector table , since the beginning.
All the best,
Diego.