Si bien el SPI es full duplex, esto solo indica que no debe esperar que se desocupe la linea de transmisión para poder enviar un dato, porque son independientes una de otra.
lo que si va a esperar el integrado del otro lado es que le digas que dato enviar, para poder enviarlo.
para cuando el esclavo transmite su dato vos ya enviaste lo que necesitas recibir, por lo cual sspbuf ya estará vacío o al menos libre para recibir un dato.
Como tu escribes que hace el maestro, tu mismo originas como se produce ese flujo de ida y vuelta, sin encontronazos, por lo tanto no te hagas problemas.
En algunos casos, como conversores AD y otros casos que podria ser el tuyo, hay un comando que se envía por única vez y luego el esclavo transmite con una cadencia determinada el mismo dato continuamente, sin necesidad de volver a pedirlo, luego hay un comando que detiene ese envío, y por supuesto hay que esperar a enviarlo cuando recién termina de recibirse un dato desde el esclavo.
Tampoco en este caso se podrían superponer los datos en tu buffer...