It depends which bootloader hex file you use. The regular firmware/releases stuff in the github repository are the already installed images, and they don't start at 0000 - they start somewhere around 6kb in. I believe the hex files sometimes do contain 0000 or ffff padding words up until that point though.
If you're looking at the 'upgrade' stuff, it is an installer. So the regular firmware/releases stuff is read in, the padding bytes at the start are stripped off, and the bootloader program data are stored in to a byte array inside an installer program, which begins at the beginning of memory like any normal program. When the installer runs it first erases it's own interrupt vector table (the first page) making it in to a NOP sled, so if the device restarts it skips the existing bootloader and reruns the installed. Next it writes over the end of the chips program memory with the new bootloader code, then once it's installed it replaces that first page with a trampoline which bounces (jumps) to the start of the bootloader. This renders the installer dead. It then emits a beep if you have a speaker attached or if an LED is attached you see it light up for a moment, then it jumps to 0000 which trampolines in to the bootloader and connects over USB to your computer.
The reason we have the 'upgrade' installer is that you can upload it via another bootloader or via micronucleus itself, so you can use it to upgrade chips without needing to have a programmer of any sort. In the case of the digispark you would need a high voltage serial programmer which tends to cost about $50 if not for the installer program. If you're wondering, I had the idea after crashing a university course on computer security and seeing how worms deliver payloads and unpack over different parts of memory, patching things in to place and rewiring jumps. This is why I sometimes call it the 'viral installer'. In the future I'd like to add checksums and a verification step, but I still consider it very safe in it's current form.