Building complex systems is a huge undertaking. Perhaps there is not enough time when implementing a framework as complex as the .NET Framework to build much more than what is deemed to be essential.
When you are trying to understand the vast amount of information that .NET consists of, ask yourself, "What is its purpose?" The answer regarding the Reflection namespace is that its purpose is to provide a revised, enhanced, and evolutionary approach to dynamically discovering and invoking code between applications. In the past this role was satisfied by automation. In the near future, at least, this role will be played by reflection.
The Reflection namespace is a big namespace and perhaps one we could categorize as advanced. This chapter will get you started on those infrequent occasions when you need to employ reflection. It is likely that in the near future there will be entire books devoted solely to this topic.