Would be nice as an optional feature but not as a default.
So far, every game with aggressive matchmaking had serious issues with finding a right way to balance things out.
First, it can’t function in absolutes as you described in the rules. Even COD have to do flexible matchmaking because there are too many variables to set and follow an absolute rules.
Second, is a matter of priorities of what is more important - network performance or similarity in skill level. Big difference in skill is not good but gathering people with large ping difference is even worse.
Third, no way to measure a skill level outside of a specific competitive culture. A level of the player in campaign, means very little, it doesn’t reflect on their ability to play a game. Using things like K/D and etc. is not good either.
Forth, in any sort of setup where teamplay gives advantage, you have no way of ensuring that specific people on the team are teamplaying or not. Like how people had meta teams in Pubg, where game has no idea that 2 teams on the map are actually from the same clan and etc.
Here is an example of how even COD, with playerbase comparative to CS, fails to stay fun because of matchmaking. I get bored, so create a new loadout where my main weapon is some awful pistol. It sucks, my K/D goes down so COD starts to match me with players who play worse. Regardless of how other people play, it takes time to learn new weapon and you are slowly get better. Your K/D goes up and COD start to match you with better players, until it goes all the way up to try-hards and now game is not fun anymore as playing against try-hards is generally not fun.