one reason is because it is so powerful that a developer can even use it to modify the underlying private field of a readonly property. i mean come on, if you hit this roadblock, there's a problem in your design. in my opinion, reflection is not designed to be used this way.