But the size of the software is also one. An Android image is easily hundreds of megabytes. And to go through all that code in reasonable time, you need a fast processor and fast memory. But as you crank up the frequencies you also need higher voltages to drive the gates faster and higher voltage leads to a higher leakage current...