Why the client breaks and why it'll break again
I've programmed for years. Never as my main occupation, but usually as a support to other things I have been doing.
The client is 2 problems. The first is, the same people who started the client probably don't still work at Riot. Therefore, they won't know how everything works and what everything connects to. This means oversight, and errors like what's happening today. If they do still work at Riot, they also probably forget what everything does.
What do I mean? There's probably thousands of scripts, maybe even hundreds of thousands in regards to checking for cheating software, making sure everything properly connects to their server, etc. I HIGHLY doubt they wrote //notes for everything to make it easy to explain. Therefore, they're probably doing the easier task of just adding features and fixing the issues as they come. However, with whatever feature they added, some variable interacted with a shared variable and since it was changed, likely caused this issue (or something along those lines).
This is a problem, but it's also the real world. It would cost so much labor to go through and re-write everything and test it to make it work properly that it won't ever be done. Trust me, it won't ever be done. However, you're not incorrect. It should be done, and as a paying customer you should get what you want - but you wont.
Sincerely,
Another annoyed player