You have to compare generation to generation also.
cpu's are at 45nm, gpu's at 40nm.
The g100 has 3 billion transistors compare that to the i5 750. It has 775 million. About the same for i7 920.
The other reason, is the software. The coding of games. It executes in a way that puts full load across all the stream processors its version of cores. Like running prime 95 or encoding a video on a cpu.
This is a layman explanation , but I think explains why gpu's get hot while gaming. At least partially.
Most of us, don't utilize cpu power under the hood of our rigs , unless we are gaming or running benchmarks. So the cpu is always only partially utilized.
Web browsing , document work, the cpu can even run with power saving features, lowering clock speed, core voltage, and shifting load from core to core which decreases heat and increases electrical efficiency.
The gpu goes to work , over time mode the moment you start 3d gaming.