Do you remember that complicated programs used to come with "keyboard overlays". I remember the old WordPerfect function key overlays, which were really more of a reference-sheet than a quick guide. Complex games with lots of functions (like MMOs) had keyboard overlays, and some keyboards like the Z-board had custom skins for popular games. If you could change the key to be an icon then there would be no need to memorize which command corresponded to which key.
Entering the customizble keyboard scene is OCZ with their OLED Gaming keyboard. While it can't change hard-coded letter keys, it does combine the best of both worlds by combining a standard gaming keyboard with a customizable OLED keypad. Using such a keypad allows you to dynamically update the key label on-the-fly depending on the application or game you're running.