@Mikey the behaviour is intentional. If the slicer asks for 20% fan speed but the minimum your fan can do is 30%, then you will get 30% which is the available value closest to the one requested by the slicer. If the slicer requests 30% then you will also get 30%, not 51% which is what your scheme would provide.

RRF does scale the PWM according to the X parameter that you provide, because the purpose of the X parameter is to specify the maximum PWM that you ever want to use.