Would string interning help?

As in, all keywords in a **pack have to be strings. All parameter names can be interned (if they're not already). The **pack can be a special dict optimized for strings (more specifically: identifiers), with an order-preserving overhead. (And then **unpacking would be smart about the type of thing being unpacked.)

I understand that there would need to be a C proof-of-concept that this could act like a dict on the Python level, and maybe even beat a dict for **kwargs performance. I'm not suggesting that it's viable, but I haven't seen a mention of taking advantage of the restrictions on the keys, and while I personally got stuck trying to flesh out an algorithm and structure for it (unnecessary(?) overhead on extracting some keys and passing on the rest while preserving order), maybe someone more clever can figure out how to work it.