I always set Cool n'Quiet to enabled. This will underclock the CPU when processing power is not needed which will make it run cooler and cost less on electric bill in electricity. I would set fans to auto and through the process it should calibrate the fans that it is set to automatic speed on. Through the process usually it will show an RPM indicator on the BIOS screen for this and it starts off at 0 RPMs and then it increments the PWM signal and it senses the fan speed in relation to the PWM setting. After its calibrated the fan will go back to slower speed and your system is ready to use.
I haven't seen any performance loss out of setting Cool n' Quiet to enabled. I have seen Cool n' Quiet clock my systems to like 700 Mhz and then jump around to 1400Mhz and 2100Mhz and 2800Mhz and basically whatever is running is weighed on how much processing power is needed to complete it. So If your watching a streaming movie for example you might see it jumping around between 700Mhz and 1400Mhz but when you launch a game it may go direct from 700Mhz to 2800Mhz and no lag in response when launching the game. Its able to jump from 700Mhz to 2800Mhz in a very small fraction of a second and the system never lags out when underclocked or gaming as a result of this.
I'd say the only reason to have to not use Cool n' Quiet would be if you wrote a program that you want to have executed at maximum clock speed of say 2800Mhz and you notice that the end result is slower to come up with an answer to it because its a single-threaded program and Cool n'Quiet doesnt detect it as a serious program to have to justify running it at 2800Mhz and its running it in an underclocked state.
However I create programs in C++ which is single-threaded execution for console apps and never had a need yet to disable Cool n'Quiet. And actually to get the most processing power out of my 8-Core CPU when running single-threaded programs, instead of using an 8th of the processing power of the FX-8350 4.0Ghz with one instance of the program running, I wanted to look for a needle in the hay stack of a problem that could be in the algorithm of the code I was using and so I set the scope of where I was targeting 1 billion 32-bit keys to be tested at 125 million keys per core, so I ran 8 instances of my program on the 8-core system and set the first to run from 1 to 125 million and then the next core to run through 125 million and 1 to 250 million and so on until the 8th core was set to run 875 million to 1 billion, and the system ran through all those keys using string compares and other methods within the code to look for weak keys within the first 1 billion keys of a 32-bit key. During this process Cool n'Quiet was enabled and the system ran non stop for a few days at 4000Mhz and all cores pegged to 100% utilization. I had Windows 7 64-bit installed on that system and a CPU Monitor Gadget running that displayed the CPU activity and Memory activity so I can quickly see how the system is handling running my program of 8 instances of the same program running and each set with core affinity to their specific cores.
Lastly setting fans on auto will keep the systems cleaner from dust and hair. Lesser air flow going through the system vs a constant high volume airflow. As well as the fan life is greater for cooling fans that wear out and eventually fail, so having them spin slower or not as often as full speed makes them last longer. The system is very good at self monitoring its temperatures and quickly cooling itself to not damage anything so no worries of anything overheating as a result of fans set to AUTO in BIOS.