The problem is, quite often it does not seem to actually use mode 0! If I scope the traffic with a Saleae Logic I find that gibberish is being sent on the bus. However, if I go into the SPI settings in Logic and set CPOL=1, CPHA=1 (Mode 3) then all of the traffic is interpreted properly. This leads me to believe that the Due somehow used mode 3 for SPI traffic in that transaction even though I very plainly asked for mode 0. Has anyone seen something like this before?!
Well, it doesn't seem to be happening at the moment. I found that perhaps I hadn't controlled CS quite well enough and also in Logic I wasn't reading the enable pin. Somewhere between those two things it seems the capture went wonky and it'd always think that the mode was wrong. But, maybe it never was. Never mind then,
The Saleae SPI decoder starts with the CS transition. It expects a valid SCK level according to mode.
In practice, you can't capture SPI any faster than 12MHz. I always reduce SPI speeds before tracing with Logic-8. The newer Saleae can go a little faster.
The Arduino Transaction Settings are very useful for slowing SPI during the program development stage.