Mike,
I do block players. And I keep on blocking them. The stream is never-ending. Why? Because other members blocking these players don't stop everyone else from also having to deal with them.
Even without blocking anyone (on a lucky evening), I can play for hours and never play someone I've been matched against before. That means that my blocking someone, if it isn't part of a larger algorithm, may easily have absolutely zero consequence. There are lots of members.
In a much more likely scenario, it has some very minor, probably unnoticable effect on the blocked player's wait times to be matched. Or, maybe the matching algorithm is time-dependent, so that my blocking actions only make new members more likely to be matched against rude players.
I don't see a solution there, unless it's part of a chess.com sponsored solution, just like any other solution to this issue.
A disconnection occurs for two reasons.
1. Unintentional due to poor internet connection or accidental exit from the site
2. Intentional due to petty, boorish behavior.
One solution for both issues. If it bothers you (as it does me) add the player to your blocked list. You won't ever be paired with that player again. If it sounds "unfair" consider this... why be bothered starting a game with someone who can't (for whatever reason) establish a reliable internet connection in the first place? Motivate them to get a better ISP or let them play with others who have similar issues. As to the boorish type, if everybody starts banning them, perhaps they will eventually get the message. Especially if you tell them they are banned by dropping a comment on their profile.