The purpose of the restriction is that there are spots in the code where FreeRTOS needs a short critical section to adjust system variables when it doesn’t want some other task or ISR to get in the way and be fiddling with them too. So it disable interrupts up to configMAX_SYSCALL_INTERRUPT_PRIORITY, but leaves higher priority interrupts enabled. This allows those higher priority interrupts, that don’t (directly) use FreeRTOS to not be delayed.
One confusing things with Cortex M interrupts, is that there priority can be talked about two different ways. One is at the ‘hardware’ level as an 8 bit unsigned number. But the hardware doesn’t use all those bits, and many of the software routines take the priorities with the unused bits removed, often as number in the range of 0-7 or 0-15. Giving the SetPriority routine a number scaled wrong will cause it to load the wrong value, or maybe even not load a value at all.