One can use dido is one is on OS X and okay with binary blobs. [/OSS zealot impersonation]
And yes, recompiling is terrible for an end user, but this is a keyboard aimed at tinkers that builds the firmware with an Arduino toolchain and literally shipped with a screwdriver. I believe before it officially shipped there was already an alternate firmware that reads from a config-file like the twiddler, complete with a simple GUI to configure it (in fact, IIRC, the "official" firmware now was basically written by a community member and adopted by the creators...). That's what you get when you're completely open from the start and let the community build features for you instead of keeping everything closed. [Er, maybe /OSS zealot this time? That paragraph kind of ran away from me....]
I'm also generally a fan of client-side configuration for keyboards, except that the twiddler is kind of an extreme special case. I originally couldn't do that for the twiddler because keys are only sent on release, so anything client-side had to work with that restriction. But if direct-key mode actually just sends straight key-down/key-up events, I suppose that could work with a client side configuration.
That said, it seems to me that "complex stateful features" can be largely avoided by using standard state machine techniques (e.g., instead of mapping "chord->output", map "(chord,state) -> (output, new-state)". If done naively, this could significantly increase the config file size, but I wouldn't expect that to be a major issue given the 2MB (IIRC) of storage on the twiddler, and would allow most of the useful features I can think of to be implemented reasonably. I suppose configuration UI gets harder, and making sure users don't do stupid stuff with this power is then an issue, but I take the approach (again, more OSS-focused and harder for a company to support) that it's better to have a feature with warnings than no feature at all.
Hopefully this is vaguely coherent... I'm getting more and more frustrated as I type this. Perhaps it would be better to sit on this, but then I'm likely to never be happy enough about it to post it. So here it is; hopefully it's more informative than inflammatory.