Anyway, I asked about this because because the use of global variable
(flymake-list-only-diagnostics) seems like it would make supporting
multiple projects at the same time more difficult.
I can't guess what you are hinting at, sorry. You can call M-x
flymake-show-project-diagnostics in two or more projects, of course, and
you'll get separate listings. I don't know if that counts as
"supporting multiple projects at the same time".
Again, I don't understand your suggestion, but if you can propose it in
the form of code it would be much better, since there would be no
ambiguity. A word of caution though: making these things work correctly
in tandem with domestic diagnostics, new file visits and buffer killings
was relatively hard. I tried many different approaches and settled on
these two ("foreign" and "list-only"). Of course if you can clearly
describe a use case where they are unsuitable, a third style may be
invented. But I would first exhaust the possibilities in these two.