Transmitting Unicode code points would, however, be a giant step backwards to the way that things used to be done, where our terminals had hardwired keyboard maps, that we had (if we were lucky enough to be even given the option by the manufacturer) to select on the terminals themselves, via setup menus or otherwise.
Whereas nowadays, everything is software-mappable. The actual hardware interface is agnostic as to the semantics of any particular key or chord. It effectively speaks entirely in terms of ISO 9995-1 key positions and a big bitmap. What any given key does is entirely software-programmable. (Apart from [Fn].) Even the nuttiness of the PC/AT backwards compatibility fake modifier keys is largely behind us.
We have regular keyboards with sometimes as many as 122 or 127 keys. The infamous "Space Cadet" keyboard had only 100 keys. Even the old 101-key U.S. PC/AT keyboard had more than that. We have gaming keyboards with even more keys, still, making use of the extensibility built into the protocol to have vendor-defined keys. (And there is even less of a relationship between those keys and Unicode than there are for the End, Calculator, F7, and Paste keys.)
Our applications know this, moreover. They don't only get told about characters. They know about key press and key release events, modifiers, and all sorts of special chords from [Alt]+[F4] to [Control]+[W].
We simply aren't using the old I-send-you-precomposed-characters terminal I/O paradigms in our input devices any more. Nor is that reflected in our WIMP user interfaces.