Robin2:
I think (but have not checked the Atmega 328 datasheet (hint)) that the single byte SPI transfer is handled by hardware that is not affected by interrupts.
I fully agree with you what you have said, and it is clearly demonstrated by the following SPI hardware structure; where once data is loaded into SPDR register, the SCK is automatically generated by the dedicated hardware to complete simultaneous data exchange between Master and Slave without the intervention of MCU. Therefore, the interrupt process may proceed in parallel.

Figure-1: SPI transaction between Master and Slave
But, there is still something to say in the light of my working experience with interrupt processes of 8085, 6802, 80x86, 89S52, ATmega32A, and ATmega328P.
The SPDR = 0x25; instruction is further broken down into the following codes:
ldi r16, 0x25 ; E205
out SPDR, r16 ; BD0E
From the above break down of codes, we may state that the interrupt may arrive during the execution of this instruction: ldi r16, 0x25;. The instruction: out SPDR, r16; which actually loads the data into SPDR register will be executed after returning from ISR. It is for the note of OP that there is no way for the SPI transaction to get out-of-order due to interrupt. However, care must be taken into consideration that the interrupt interval is long enough (and practically, it is long enough) so that the MCU has time to execute the codes of the MLP (main line program).
It is also for the note of OP that the execution time of SPDR = 0x25; instruction is equal to the execution times of the above two assembly lines, which is : (1/16000000)*2 = 0.125 us (these are 1-cycle instructions). The instruction execution time is the time that the MCU needs to fetch the code (E205) from flash, put it into instruction register for decoding, and then placing to the control matrix (the sequence generator). The data transfer time from Master<---->Slave at 125 kbits/sec rate is: (1/125000)*8 = 64 us.
Robin2:
My reading of the datasheet is that when a byte is written to SPDR it gets sent, and the incoming byte is received. Interrupts have nothing to do with it - they are separate, and operate in parallel.
As the Master has to wait at least for 64 us (assuming @125 kbits/sec) for the data to arrive into SPDR of Master from the SPDR of the Slave (Fig-1), there may (very unlikely) appear interrupt which will be honored in parallel while the data from Slave to Master is still in transition. Again, your proposition is in line with what is happening at the hardware level.
