Can the firmware on STM32F4 be updated through USB without toggling Boot0?
You can jump from the firmware to the bootloader on the STM32F4. The STM32F4 has a built in bootloader at address 0x01ff000. Here is a tutorial on how to jump https://stm32f4-discovery.net/2017/04/tutorial-jump-system-memory-software-stm32/. Once in bootloader mode you can use DfuSe form ST(free) to flash the new firmware.