[Samsung Galaxy Nexus] Chirality:
I sense there is some conceptual confusion here. Both you and FISKER_Q said something about on-screen buttons being dynamic and can change with what the software is doing. Let's clarify things a bit.

We are actually talking about two different kinds of buttons here. The first kind are the button widgets displayed on the screen, they can have different appearances and functions and appear and disappear depending on what the software is doing. Let's call them dynamic buttons. The second kind are buttons that are always present and always do the same thing. Let's call them static buttons.

Obviously a touchscreen mobile device needs dynamic buttons, they are an integral part of the current UI paradigm. But does it need static buttons? Well...it needs at least one, the power button. Without it, you won't be able to turn the phone on. But does it need a second one? The answer is yes, it needs a home button. Without it you won't be able to return from a full screen application that wasn't designed with an exit function. This is why the iPhone has a giant button underneath the screen. And in fact, in ICS, the three virtual buttons only go away during video playback. They are still there, possibly dimmed, during any games or other apps. And this is only because the video playback app is a standard part of the OS, so it's safe to let that app hide the home button until a user taps the screen. Imagine if any app could hide the home button. Then you can write a malicious app that hides the home button and doesn't let you exit the app, forcing you to restart your phone.

So we established that a mobile device needs at least a second static button. Now the question becomes, given that you need this button to be always present and always doing the same thing, why make it into a dynamic, virtual button? Why do you need it to dim, change orientation, change function, move around? You want this button to be static, predictable, easy to locate. Users should be able to press this button without any graphic indicating what and where it is. This is why I said physical buttons can be pressed in your pocket without looking at it: not because you would ever need to do that, but because with a physical button, particularly as few as 1 to 3, they are so easy to locate and press that you don't even need any lights or graphics indicating where they are.

Obviously Android realizes the necessity of at least two static buttons, that's why they designed the home button to behave the way it does on ICS, where it is treated differently from other buttons. Now it is the decision of the Android designers to include not just one, but three static buttons as a standard part of the system. But here we are not concerned with this design choice, what we are concerned with is the fact that there needs to be at least one of these static buttons besides the power button, and the properties that these buttons must have. Given these properties, why should these static buttons be dynamic, be able to dim, be able to change orientation, be able to change function based on context? Why shouldn't they simply be physical buttons that can always be easily located, easily pressed, and difficult to trigger accidentally?