I see a few options:
1. Change the behavior of the dont-downcase-last parameter to this
more
extensive meaning. Update global-set-key (the only other caller
who sets
dont-downcase-last in Emacs' code) to take this new behavior
into account.
I believe `global-set-key` does want to use this new behavior, yes.
2. Make the dont-downcase-last parameter have the new behavior only if
it is
passed some new value (for example: 'all-fallbacks). Leave the
existing
behavior for any other value, especially 'nil and 't.
3. [My preference] Like 2, but with a deprecation message on values
other
than 'nil, 'all-fallbacks, or 't (or maybe 'downcase-last if we
want full
explicitness). This allows maximal ability to define new behaviors
in
the future.
These sound good as well. I'd even put a deprecation message on the
`downcase-last` case.
I like #3 as existing code would run unchanged. The chance that any
existing code passed 'all-fallbacks is extremely low. And anyone
supporting
a package outside of Emacs passing some other value will notice the
message
when they upgrade to Emacs 28.
Thoughts?
By order of preference, I'd say: #1, then #3 and finally #2.
But any one of those 3 is OK for me.