That and also it wouldn't be able to express modifier key state, locks, etc, so it would have to coexist with the existing scancode-based input methods.
If you represent Unicode codepoints as unsigned 32-bit integers, you have the eleven high bits free for representing modifier keys. You can even represent changes of state for the modifier keys without a normal key press by sending the modifier bits with a NUL character.