I've been looking through SO and found some highly voted question what shouldn't be there. Example would be [What's your most controversial programming opinion?(What's your most controversial programming opinion?) or What is the best comment in source code you have ever encountered? ATM they are closed but they've been opened for a long time. Also I've seen more similar type question, what are also shouldn't be asked at SO and those questions were downvoted and closed, as I looked these was asked by users with low reputation.
You must have missed the dates on these questions. It has nothing to do with the reputation of the users who asked them. In fact, because of their age, the users who asked them probably had a fairly low reputation score at the time they posted the questions. The scope of the site has changed significantly since it was first founded, and experience has forced us to tighten up our requirements. What you're seeing is merely the effects of that: the types of questions that people used to be able to get away with asking are now unceremoniously rejected.
Heck, we even made it painfully obvious that those questions you linked to are no longer valid or acceptable questions on the site. There are banners everywhere, the vote arrows are removed, and you can't do anything (like post a new answer, edit existing posts, etc.). The questions are effectively "frozen in time", like a curiosity of an ancient civilization in a museum. What more do you want us to do?
But the fundamental point is that it doesn't matter who asks those questions. If any one of these people posted a question tomorrow that asked for the best comment ever encountered in source code, or the most useful C# extension method, or everyone's favorite methods for dealing with a Dilbert boss, it would be nearly instantly closed, too. And downvoted. Probably more heavily downvoted, since everyone would expect them to know better. They don't post these questions, of course, because they do know better.
The requirements for questions and guidelines on what types of questions not to ask are all stated clearly in the Help Center. There should be no confusion on what is acceptable, and these rules apply equally to all users.
Aside from the date issue, what you're seeing is merely an issue of confirmation bias. Basically, the users who are least likely to know and/or follow our guidelines are new users with low reputation scores. So these are the people whose questions are most likely to be downvoted and/or closed. But it is invalid to assume it is because they're new users. You're confusing correlation with causality. And inverting that relationship to boot.
Same situations with answers. I've seen answers with unusual (but well working) way of solving problems. Those that were offered by user with high reputation is upvoted, those offered by users with low reputation downvoted.
There are also rules for answers in the Help Center: how to write a good answer and what types of answers should not be posted. Again, these apply equally to all users, regardless of reputation.
But "unusual" methods of solving problems are perfectly valid answers, especially if they work. These can be upvoted no matter who posts them.
What you're probably seeing is explained by limited knowledge or understanding of the problem domain. Inexperienced users (measured not necessarily by reputation on the site, but by their experience with a particular programming language or technology) might try to post "clever" or "unusual" answers, but get some important details wrong. Although neither you nor they understand these details and why they make their answer wrong (which is totally okay, of course, not everyone knows everything), we have a lot of real geniuses participating on the site who will understand why they are wrong. They're also sticklers for detail and will downvote wrong answers. Often, they'll even leave a comment explaining why it is wrong. This is what makes Stack Overflow great—good answers that are vetted by people even smarter or more experienced than you to ensure that they're even better.
If you think I'm wrong, I challenge you to provide some links to examples.
It looks like users before flagging or downvoting question/answer look at reputation and if it is high enough decide not to do that, but if it low, they do.
Some people might do this, but I do not think that it is very common. The people who do do that probably should not be doing it.
As I mentioned above, our rules and guidelines are pretty clear and apply equally to all users. If a post does not conform with them, it should be flagged, regardless of who posted it.
I suppose that sometimes users with a high reputation are granted the benefit of the doubt, but I hardly see how that's a bad thing. Not only does their reputation score indicate extensive experience with the site and what is acceptable, but it also makes it more likely that they're talking about something that goes over your head and you're misunderstanding what they're actually saying. That said, there's nothing wrong with voicing your concerns to them in a comment. They'll either explain what they are thinking, or they'll realize that they've screwed up and remove their content. Either way, it is a net win.
Avoid such situations is impossible but I think that reputation should only be shown in user profile, because it would let to prevent some kind of discrimination of users with lower reputation and some kind of exaltation those who have high reputation.
Even if what you're saying is true (and I've discussed above why I don't think it is), this isn't a very good solution. The user name (which links to the profile) will still be shown next to all of their contributions, and it would just take one click to figure out what that person's reputation score is. Often, the reputation is even available in a tooltip if you hover over someone's name. So if someone wanted to make biased decisions, this still wouldn't stop them.