Some tags almost never make sense as primary tags. For example exception or string. If we cold mark those somehow as no primary tags (that would be something associated to the tag, no something that would be decided in each question asked), then we would never have the problem of those tags being primary instead of the obvious primary tag, like haskell.
In essence, tags marked as "no primary" would always appear after normal tags.
This is not a big problem in Stack Overflow, but in Board and Card Games the tag rules is becoming a problem for all games, and we are discussing posible solutions. Some other tags overshadow game specific tags often, too. Perhaps other Stack Schange sites have similar problems.
Edit: I'm aware that this is not the first time that a fix for this problem has been requested. But this has an advantage over other similar requests (at least the ones that I have found in meta): the person who is asking the question doesn't need to do anything, so asking a question doesn't get more complicated. I don't know how this is implemented, but probably an algorithm that doesn't depend on the question for the order, only depends on the tags (like the one I'm suggesting), is easier to implement.