I too was waiting for some divine inspiration, or others to find a solution. :-)
I couldn't figure out how to have MC not differentiate a single keyword from a list of keywords. It seems that MC considers "foo" and "foo; bar" as two distinct things when selecting randomly from the keywords via modifier. While it shows them separately in panes, it seems to treat them as a raw string when doing ~limit. Thus, if I have 1 item with "foo" and "bar" keywords, and one item with just "foo", and one item with the "bar" keyword, if the keyword "foo" is the random selection via ~limit, two items will be returned. But if "foo; bar" is the random selection, then only one item is returned. Since "bar" is in two items, two items should always be returned; one being returned seems to confirm the theory.