Which of the potentially hundreds and hundreds of shaders should we expose the parameters for?
What benefit would we gain? Some IDE sugar. Personally, I have trouble caring about this at all since I don't use IDEs. It also gives a totally 100% false sense of what's available to the users. "Oh, I didn't know I could set that because you didn't hard-code it into the API needlessly..."
What would we lose? We'd lose the ability to easily support custom shaders. Every new shader would require a new material def subclass and a new material subclass and all the mess entailed in that.
Generally, if your strategy is "subclass this thing to add parameters" it's already wrong to begin with, really.
Edit: and note: not a single bit of this gets you away from reading the fine documentation.