> 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