If i understand correct than pwm on 8266 is only 10 bit, since it’s software one, not hardware. And it can be on any pin.
Maybe my observations: higher frequency reduces control at lower end - it can happen that light won’t go as low as it goes with lower frequency. But at one point flickering begin to show.
I control led’s via mosfet, so having higher frequency requires faster mosfet, since not any mosfet is capable to follow higher frequencies. As a result going down with dimm value at one point light won’t go lower anymore, because mosfet doesn’t switch off fast enough.
Example: with 1000 Hz i can go to 10% to have minimum light, while with 2000Hz i can’t go lower than 20%. 500Hz goes even lower, but at this frequency flickering is quite visual and too annoying. If you have oscilloscope it will show this clearly.
In the Arduino World it qould be the “AnalogWriteRange” command:
NOTE: The default analogWrite range was 1023 in releases before 3.0, but this lead to incompatibility with external libraries which depended on the Arduino core default of 256. Existing applications which rely on the prior 1023 value may add a call to analogWriteRange(1023) to their setup() routine to return to their old behavior. Applications which already were calling analogWriteRange need no change.