There is nothing in the kernel to reduce frequency from 600MHz under load. I bet there is also none in user space, as it does not make sense to put it in user space. I ran simple program to use 100% cpu time for 3 hours, and all 3 hours were at 600MHz. If your metalayer-crawler (or any other program) goes crazy, and you put the N900 to charge and go to sleep, then it spends all the night in 600MHz (and 1.375V), and generates a lot of heat.