fat16lib:
I don't see what you have against SAM3X DMA.
I have nothing against DMA per se, it's just that by your own account, it seems to be adding a great deal of complexity to the SPI implementation. Of course, the simpler the solution the more robust, generally speaking.
But if you say the Teensy 3.0 FIFO code is even more complex, it's probably a better way of going -- and perhaps even means the Teensy would benefit from a DMA implementation after all, if only to make things less complex.