Separate Vector Table for USB Bootloader (Infineon 4400-CortexM4F)
It's not fully clear what all you are asking here, but to address one of your aquestions, No,  Cortex M4 cannot boot without a vector table (or at least the first two words of one) at the address where the hardware or ROM boot decider expects it.  It is possible to write a bootloader which works entirely by polling with interrupts (at least the recoverable ones) disabled, but the startup process still requires the initial stack pointer and entry point from the start of the vector table.

So typically yes, your bootloader requires its own vector table.

If the application's vector table were at the expected hardware address and the bootloader kept interrupts dissabled, that might sort of work but would be risky because the boot process (even to the bootloader) would be broken by erasing the target memory area.

Note that something being in memory and the debugger making sense of it are distinct things.  Symbolic disassembly would depend on you informing the debugger about what it is examining, typically by loading the appropriate .elf file into the debugger.  In the usual case where the bootloader and application are distinct builds, you need to load the .elf of the project you are wanting to examine, even though execution might momentarily pass through the other.

And of course you also need to make sure that you have loaded both the bootloader and the application into flash itself, and not accidentally done something like a full chip erase before loading the second.