Frequency measuring and SPI

Surely SPI need interrupts to be enabled and can only work outside and ISR.

Excuse me but this is not correct. I agree that the ISR was too heavy and should be shortened but SPI works without a problem inside the ISR because it's done immediately, no buffering or similar that needs an interrupt to fill the hardware register again. You shouldn't use the UART in the ISR, or use anything that waits for millis() to increase but not the complete hardware is disabled inside an ISR.
Nevertheless an ISR should be kept fast and short, otherwise the results may not be as expected.