export binary/jtag-ice smd programming

the board needs to have a bootloader in order to execute the sketch binary

That's expected behavior. Arduino Zero sketches are built to run at a non-zero start address in flash, because the bootloader starts at zero. At reset, the chip extracts some data about where to start from location zero in flash, so there MUST be something there.

This is different from the AVRs, which:

  • have a separate bootloader section at the end of memory, and a fuse that tells them to start there, so normal sketches still start at zero.
  • actually start execution at either zero or the start of the bootloader section, rather than extracting startup info. So if you start at the beginning of the bootloader section when no bootloader is loaded, you go along executing useless but harmless instructions until the PC wraps around and reaches 0 (where your sketch would start executing.)