Is the Elo system in League of Legends accurate?

Statistically, an Elo rating model can be extended to accurately model the skill of players in teams of any size.

The reason for this is that of the n players who are pulled into your game, (n/2) are on the other team and (n/2)-1 are on your team. In LoL, for example, your 5 opponents and 4 allies are chosen from the same pool of players. Between different games (assuming solo matchmaking, not necessarily a given), you are the only thing that remains constant. Over time, your contribution can thus be measured relative to others, and your Elo rating will fluctuate accordingly. The larger the size of teams, larger too is the number of games required to evaluate a player properly.

It's usually best to think of a rating as a confidence interval, and good team matchmaking systems treat it this way. For example, if your rating is 1600 and you have only a few games played, your real Elo range may be between 1200 and 2000. If your rating is 1650 and you've played thousands of games, your real Elo range may be between 1625 and 1675.

All any rating system can do is give an approximation of your skill level relative to others. It can be manipulated by playing with friends who have inaccurately rated accounts, smurfing, or just by throwing games. Nonetheless, it is the basis of virtually every rating system because the principles behind it are valid.

I know in the past LoL has modified players' Elo ratings using things other than Win/Loss and may still do so. Any time this is true it lowers the accuracy of the rating system and is conceptually terrible. This ironically goes against the logic Riot laid out in their original explanation of matchmaking here. As the link above correctly states:

The system must be “capped” zero sum, in other words, players must gain and lose points equally overall so that the “average” score in the system remains consistent.