In basic terms, the bootloader is placed at a location where the code is started at that location during reset or power up; the application offset is a jump point for the code to start after the bootloader code is completed running.
Firmware is code that runs in a continuous loop unless a major error has been triggered. The bootloader offset is the point the firmware code starts in flash memory, and it locates the firmware code beyond the bootloader code.
Yeah, I guess you could do that, but it probably would cause issues.
In the case of CanBoot, it gives you options for triggering firmware loading other than the SD card.
The bootloader is not required; you can load the firmware directly to the location the code starts running. But doing this makes it harder to update the firmware, which is the main reason for a bootloader to make it simple to update the firmware.