I believe if you tweak other settings in the kernel as well as the underclock you can get really good performance. I've been able to underclock all of my devices with custom kernels.
Agreed. Tuning and measurement are key. That said, some devices do not idle/perform well at low frequencies. A Moto G4 Play (Snapdragon 410/MSM8916) serves as an example. While the stock kernel allows 200Mhz bottoming out at 400Mhz imposes no penality while delivering a better overall experience. Clearly this weakling does not reflect state of the art cpu/chipsets; nor is it an outlier.
Don't get me wrong - I love the idea of underclocking/volting when it can be done easily and yields measurable benefits with no undesirable side effects. Usually other tunings are required to achieve that.
Also recognize there's a cost (albeit minor) associated with regular frequency hopping. Holding the idle frequency steady in the absence of a significant load yields the best results IME.