But then again, on a PC you are within the realm of API-based programming, DirectX versions, drivers... Consoles are a different beast altogether, and more often than not, the power in a console's best titles is achieved through very "close to the bare metal" coding (AKA
Real Programming). So there are three ways to achieve BC when changing console generations : include the old hardware (fully or partially), have register-by-register compatible hardware (which seems to be what Nintendo did with the Wii), or have powerful enough new hardware that you can emulate the old one (not an easy feat, see the state of XBox 360 BC).
I think going the second path (enhanced, fully compatible hardware) limits what can be done with the transistor budget of a new generation. I may be wrong.
The thing is that we don't know for sure. Going from PS1 to PS2 for Sony was including the full PS1 HW into the PS2. PS2->PS3 may be different (although I wonder how they would emulate GS). XBox->360 is both a mess (from a gamer's standpoint) and an engineering marvel (from a more technical standpoint). For the Wii, there are other considerations than NGC->Wii BC, probably Wii24 (need to have a very power-efficient CPU), cost, and form factor. We don't know how far they could have pushed full register-based BC (keeping a similar architecture) with less form-factor, cost and power constraints...