One of the main focus of .NET platform to make programmers' lives easier. What is the point making an application complex if it can achieve same results without it?
Are developers trying to take objet oriented programming/Algorithms/concepts too far and making it so complex that nobody can edit or modify the code without help?
Read Jason's blog Fancy Algorithms/Concepts to continue this topic.