Moreover, as soon as we are outside the "occidental" keyboard mappings, the one key -> one letter mapping becomes false :). For example, the character 腕 is a single character and has a single unicode code point. Thus, it comes as a single keypress/keychar event from the vm point of view. However, I had to make several key presses: u + d + e + space + enter. So using text events to drive shortcuts and recognise wether a key was pressed or not falls short very quickly ^^. So recognizing wether I was pressing ctrl or alt during that character is far from obvious...
(then there is also integration with the system's IME, but that's another story...)
Sorry if I'm a bit offtopic