Indirekt proportional schon.
Also die SPI-Geschwindigkeit ist durch einen Hardware-Teiler an die F_CPU gekoppelt, d.h. da sind nur ganzzahlige Teiler (2^x) möglich.
Bei SPI gibts eigentlich keine "ideale" Frequenz; hier fährt man einfach vollgas, je nach dem was halt die Kommunikationspartner können.

Bei TWI/I2C hast du mit dem TWBR noch nen gewissen Spielraum, um so grobe Standardwerte einzustellen. Übliches Minimum sind 100kHz für I2C, Maximum eben so, dass TWBR > 10 ist bzw. dass die I2C-Geräte noch mitkommen.

Wenn während der SPI-Übertragung ein Interrupt kommt, wird das aktuell angefangene Byte noch fertig gesendet (das macht die Hardware ja von alleine), das nächste Byte kommt aber erst dann, wenn der Interrupt beendet ist und SPDR wieder gefüttert wird.