> The expected behaviour, in the absence of a proper dir-locals checker,
> would be that (1) Flymake didn't turn itself on at all in these files or
> (2) It didn't use the wrong backends.

A small followup, a piece of the puzzle you might be missing.  Flymake,
by default, doesn't "turn itself on" in emacs-lisp-mode buffers.  But
people add this line to their init files so that it does:

   (add-hook 'emacs-lisp-mode-hook 'flymake-mode)

...as they probably also do with Flycheck, and any other stuff they like
to use when coding elisp.

João