> It seems to me that this is something where there really ought to be
> a general Emacs solution (dynamic-let or whatever).
There is such a thing: (defvar <foo>).
> Another example is display-time-string-forms (helpfully hidden by
> with-no-warnings). Do you propose to make similar changes everywhere
> this same issue occurs?
There are many cases where changing the name of the dynamic vars is
too inconvenient (they may even appear in user's customization).