Hello Tony Kirkham,
Package developers usually implement changes within a separate package.
This usually precludes modifying an existing proc. Changing behavior on an existing proc may adversely affect another that, for instance in this case, expects an error.
If the changes are applicable to the core, core developers tend to find it and incorporate it directly, or by copying the functionality of the code while improving on it.
FWIW, there are a few practical variations of the Tcl dict paradigm in Q-forms package, mainly regarding looping and converting a batch of name values from/to array, lists, and scalars. Special cases allow limiting the names, or assigning an empty string if a value is not found for named index etc.
cheers,
Ben