This is easily the worst PvP matching system in any game ever! Preforms should fight preforms and PUGs should fight PUGs. How hard is that to code? If you queue into the 5 man you go against other preforms. If you are in the solo queue you go against other solo players. It can't possibly be difficult.
I can't find any info on matchmaker tech. Presumably it uses something like an ELO algorithm which keeps tracks of wins and loses but it might just try to match up average IP and ignore everything else.
I've seen multiple cases where major alliances had sit outs on the opposing team (to be fair both times it was the same alliance)
Pug vs pug should be coded like you say with the caveat that it is exploitable by large groups.
The queues are already very long (maybe unless you are a healer), if you restrict pug vs pug only or group vs group then the queues are going to be longer. You also need to think of 2-4 player groups and how they would fit. Every game has this issue and the smaller the playerbase, the harder it is to make a system that will provide fair matches.
As a side note, there are millions of thread claiming "This is the worst matchmaking ever made" in about every single team game I ever played.
I also with the que was quicker...