The thing about skill-based matchmaking is that it can't be implemented without removing the ability to join official servers through the server browser, and also they would have to prevent people from joining the team of their choice. TF2 did a matchmaking update and it was the most hated update in the game's history.
There are alternate solutions for massive teamstacks, though.
- Teamscramble vote: Within the first 5 minutes of the round starting, anyone can call a vote, which both teams vote on, for the teams to be randomly scrambled. This vote requires 75% of the server to agree to pass. Each player can only call this vote once to prevent spamming (though it can be called by different players multiple times in the first 5 minutes).
or
- Handicap: The game adds up the levels of Red Team, adds up the levels of Blue Team, and compares the totals. If the total level of one team is more than double that of the other, then that team has its respawn timers increased.
There should also definitely be a soft autobalance system in place. Normally new players joining fixes team imbalances, but in rare situations I've seen one team be more than 8 players down compared to the other one.