"Players that play bad are punished by losing rating", aren't players that play good losing rating when they lose too? This is not a punishment, this is result from a game. You can play well and still lose, maybe enemy comp was better, maybe you didn't get as much objectives, it happens. Players that play bad aren't punished at all. I'll tell you why this is such a big problem now. With dynamic queue you can have 2 really good players and 1 pretty bad one. These two are more than enough to carry him at a decent elo. Once he is their he will be matched with people according his mmr. But the problem is he can't actually play on the level that people who got there by themselves, so he starts to be a big burden for his entire team. Every game 4 other people should be forced to experience the negative consequences from the boost of a player that should be learning how to play first in normal and then climb his way to this elo by improving. Now, you'll say "he will drop eventually". Will, he? Maybe, but like kidney rocks he will decent painfully through the elo, leaving trail of frustration and negative experience for his teammates. He won't go to lose streak, because there might be players that could carry him after all in some games, which will make this even longer lasting.
"They will lose rating and eventually they will start playing with people who are of the same ability level as them and then no one will have a problem with how bad they play."
If it was several seasons ago this would work, but The real problem, though, is that there are too many of these players that don't belong to the elo they are in and with so many divisions can't be cleared and matchamaking can't be made good enough again. So, we now see many games where one of the teams easily snowballs the other.
There can be a report reason, as there was one before "Unskilled player" if you remember. If a certain player gets this too often and has bad stats most of the games, the system can either demote him or in cases where it is really needed, restrict him from playing ranked for a while.
I'll give you example from a game I had. One of my teammates picks Shaco as support in champ select. While he did this a player tells us that he had him in his last game and he trolled on purpose. In our game he indeed trolled again. He was wondering the map and laughing alll the time without doing anything. What do we get from this example. First of all, I can't report him for Afk as he was moving all the time, I can't report him for feeding as he was simply laughing, I can't report him for negative attitude as he said nothing in chat. For what valid reason from the given after the game should I report him, so he can get punished? Second of all, he has done this before and got no punishment which means this is not effective system. There is a need for more report reasons and punishment systems that are not focused entirely on chat.