The problem with using reflection is it means abandoning the static typing and IDE assistance that are the main advantages of a language like C#. If you don't care about those, and just want the power of code like that in the article, why not use a language designed for this coding style such as Python or Ruby?
Obviously you have to make a choice (another big issue is performance), balance the ease with which you could solve a particular problem with the complexity of the solution.
Just because it's possible to do something doesn't mean it's a good idea. However, there are cases where reflection lets you solve problems in these languages in a nice way. At the very least, understanding the feature of reflection makes you a more competent programmer.