My interpretations...
1. RPi SPI and 3V3:
The Raspberry Pi should be all as 3V3, also the SPI pins. So connecting a RPi SPI master with an STM32 MCU slave, all as 3V3 systems - should work (no level shifters needed).
2. Slave Mode vs. Slave Full duplex Mode:
I think "Slave Full duplex Mode" is just related to the topic, when you use SPI as I2S slave:
SPI is (usually) always "full duplex", unless you configure SPI in "receiver only".
I guess, this line in datasheet as "Slave transmitter/full duplex mode" belongs to SPI as I2S (slave, full duplex).
"slave mode" is also for regular SPI, as slave.
3. Datasheet and "50 MHz vs. 25 MHz":
The 'general statement' about SPIs with 50 MHz, some other as 25 MHz is related to the "guaranteed" speed, with all voltage levels, and covering "all" SPIs.
See in the table, that different voltage ranges are mentioned: in 1.8V mode - the speed is reduced to 25 MHz. Therefore, as "general statement": "always 25MHz at least" (on lowest voltage included, but it can be faster on higher voltage or even some other SPIs).
4. Why Slave Mode just 1/2 of Master Mode speed?
Usually, a Slave is always slower as a Master. The reason is potentially: as a slave the SPI SCLK is received. This external clock goes through clock synchronizers, to avoid clock glitches. The synchronizer needs (at least) one external clock cycle to be "considered" as stable.
In master mode the internally generated clock is used also to sample the slave response (MISO), which does not need a clock synchronizer.
Summary:
Take it as this:
- the maximum speed possible depends on the I/O voltage you configure (lower voltage = lower speed)
- some SPIs are faster, some are slower (choose the 'right' one)
- the "general statement" covers all conditions (and all SPIs)
- as a Slave (with external SCLK), the speed is just half, due to clock synchronization needed to do
I think, the datasheet makes sense and is correct (the confusion about "Slave full duplex mode" seems to come from the intention to mention also I2S modes (possible to configure on SPIs).)
With 3V3 I/O voltage you should be able to generate 50 MHz (as master), use 25 MHz as slave (minimum guaranteed)
Isn't this fast enough?
Even Raspberry Pi fits as 3V3 - are you sure you can configure and generate 50 MHz (ore even 25 MHz) with Raspberry Pi? Play with RPi, configure and use SPI on it, check with scope...
STM32 MCU as a slave should "follow" any clock speed generated if RPi is the SPI master, even with "pauses/gaps" in SCLK, as long as it is not faster as your STM32 SPI slave is specified for (25 MHz).
What do you think would not work?