Stepping back, why would you actually want the keyboard firmware to have configurable settings and runtime state? xkbcomp (Linux/Xorg) is buggy as hell, but I'd say it's still fundamentally the right abstraction to do this on the host. Configuring a layout on the keyboard is itself the hack, really only encouraged by the recent innovation happening there.
It's been a hack for years, not merely recently. Maltron keyboards used to switch layouts between the "PC" and "Maltron" layouts by the keyboard moving scancodes around, in response to a physical switch at the back of the keyboard, back in the days of PS/2 keyboards.