I have now checked your changes. It looks promising. I definitely would wrap everything related to keyaddr in a POD class that features nice constexpr access functions. Also it is definitely going to break existing code.
Apart from saving RAM and PROGMEM, such a change would address other aspects related to the way C++ is used in Kaleidoscope. After/while discussing with you, my brain started wandering. This led to a new topic about general improvements of Kaleidoscope.