Automatic in-field Due reflash

Not SPI, but JTAG:
In the following thread I describe a solution, using an FTDI UM232H board. That small device is a kind of swiss army knife for any kind of serial connections, which you can get for less than $15.0

Using OpenOCD you can use that device for debugging and uploading binary data to the SAM3X8E.

With the configuration described in the linked thread, you can upload code with the following command:

openocd -f interface/FT232H.cfg -f board/DUE-DigiX.cfg -c "program Blink.cpp.elf verify"

What I have not yet tried, is to chain more than one DUE compatible device and access the differently. For that I need to dig little bit more in the OpenOCD settings, but it should be possible, as chaining devices is the most important concept of JTAG.