All of this sounded very familiar, and I'm pretty sure that it's been discussed
before. A search through the emacs-devel archive (which has some known
issues) revealed, as an example:
...which begins:
The current handling of map-put on lists is very ad-hoc:
The gv-expander of `map-elt` tests if the arg is a list and if so
delegates to `alist-get`.
It kind of works, but for a library that's supposed to be generic and
expandable to other map types, this is undesirable.
I hope that helps. If not, sorry for the noise.
~Chad