In recent rounds, I have noticed plenty unsatisfied contestants (specially from div 2), criticizing the problems, the difficulties, and/or the pretests. Some complaints are about problems being too easy, too hard, too "troll", that Codeforces is now "Mathforces", etc. I have been specially surprised by some participants accusing testers for hard problems, when they actually have nothing to do with it. I think most problem setters are already used to this type of behavior. However I still wanted to spend some time on this post and share my opinion about these angry comments.
First, I want to make clear that I am not against giving feedback to the rounds. I actually think it is one of the best ways to improve and grow as a competitive programming community. I also understand that it is easy to react angrily at the setters after a bad performance. I myself have gotten upset after several contests, and felt the need to blame the people who prepared the round. However, I believe most of us participants don't consider some important issues before posting these raging comments. First of all of course, we should appreciate all the work done behind a contest (which is done entirely out of contribution). But I have specially come to notice a principle that is frequently ignored as well: problem diversity.
As a competitive programmer wanting to improve, I've seen that one of the best ways to increase your skills is to solve types of problems which you are not used to solve. Just repeating tasks you already know how to do will help you very little. Now, Codeforces rounds can be suggested by almost any user in the world, so shouldn't we expect that sometimes the problems will be a little different to what we are accustomed to? Another observation I made is that most of the top rated users from the platform usually perform well in a consistent basis. So isn't that evidence that mastering competitive programming involves being able to solve different types of problems? I just think it is a good idea to use the contests we initially don't like as an opportunity to become more talented, and to acquire the ability to solve similar tasks in the future.
Again, this is merely my opinion about contest criticism. I am inviting you to consider this simple concept: problem diversity. Leaving aside angry comments and trying to extend your knowledge has really helped me grow as a competitive programmer, and I am sure that can be the case for anyone else as well.
I fully agree with the discussion you presented here, and it is true that the efforts of the problem setters are invaluable to keep the site going.
However, to me it seems that people complain the most when two or more problems of a contest are similar in topic (for example, people complained about round 491 because DEF were implementation or about round 493 because div 1 BC were math — in my opinion both rounds were pretty good). So, in a sense, it matters that there is problem diversity within a contest.
That is why they are merely div2 contestant.
I feel really happy whenever I see Math questions. I don't understand why some people complain. I would really welcome more 'MathForces' rounds ! If you're a competitive programmer you must relish Math questions !