One thing I'll just add:
Resource usage figures for games is an interesting metric, but ultimately there is very little meaningful information you can take away from it.
Extrapolating and saying 'ohh, they are only using 50%, that means their next game will do twice the stuff' is the worst form of speculation.
Three very simple examples why this is the case:
You can't apply a single metric to total system performance / resource usage:
A developer says they are using 50% of a systems processing power in flops (which would actually be quite an achievement). That could mean they don't have enough parallism, or they have hit the system memory bandwidth wall - or a host of other things. Chances are it's not a trivial problem at all. Sure in theory it could be 2x faster...
The law of diminishing returns:
In a room full of elephants, nothing stands out. Smart developers target key performance bottlenecks first, those systems that will see the maximum gain for the least work. And usually, the smaller the gain, the harder the work. As soon as you are dealing with a few percent here or there, chances are it's not worth the time and money needed. 80/20 rules, etc.
No game uses 100% of a systems resources 100% of the time:
This should be obvious, but people seem to miss it alot. Uncharted 1 may well have only averaged 30% SPU activity (as a hypothetical example), however that does not mean it didn't spike.
The way around this is to design your game to have little breathing room. Eg, you will only ever see 4 enemies up close, etc.
I imagine this was why Uncharted 2 was so consistently high quality. The side effect is the player usually has less freedom to deviate from a scripted path, or simply sees less variation.
There is also the simple matter of doing things smarter, Mass Effect 2's characters use very similar texture budgets as the first game - yet the perceptual difference is night and day. This is simply making better use of the available resources.
Art process maturity, if anything, is a far more significant reason why games look better the further you get into a console generation - not a sudden ability to run twice as much code.