Repro (CPython prints 129 for every line)
class O:
def m(self, a: int, b: int, c: int = 3) -> str:
return str(a) + str(b) + str(c)
o = O()
d = {"c": 9}
print(o.m(1, 2, **d)) # works
print(o.m(1, b=2, **d)) # refused: positional argument after keyword argument
print(o.m(**d, a=1, b=2)) # refused: got multiple values for parameter 'a'
print(O().m(1, b=2, **d)) # refused, fresh-receiver site
Measured 2026-09-19 at pxx f646378ff plus the constructor fold, compiler 4dbf05fb027e, oracle CPython 3.14.4.
What is already done beside it
Engine(key=k, **d) (a constructor) and o.k(1, b=5, **d) into
def k(self, a, b=2, **kw) both work. See
test_nilpy_keywords_and_a_mapping_bind_by_name_at_a_construction. The
helpers are shared and take any callee, so this is wiring, not design.
Not on That Space Program's path: it spells this shape only at a constructor.