Paul, I'm 1000% in agreement with this.
As you use paint as an example, coatings are actually a system in their own right. I run into this all the time with roofing, waterproofing / dampproofing and especially PAINT. Each system is comprised of a primer specific to the substrate, and finish coat(s) defined by their purpose or desired appearance (or both). Since they're less than 1/16 of an inch, they cannot be graphically shown / annotated. Now a greater disconnect with paint is material vs color. Take Ben Moore as an example... They have 1500 colors in their palette, which they proud of and want to have available for use. Couple this with the 16 different paint brands they sell (Aura, Ben, SuperSpec, etc), and further multiply that by the 4 sheens that can be selected (Eggshell, Flat, Semi-Gloss, Gloss), you're now approaching 100,000 unique materials that would need to be selected.
Completely unrealistic to build as things stand, especially since the Render assets currently have no API to automate the development, maintenance or selection of these 100k materials. A trick I've used was to create the colors and sheens (6000 was hard enouogh). and a material parameter simply called "Material" that is assigned to materials so that it can at least be selected from a inside of the Finish Color. It's a hack I know, but it heads in the right direction...
Which brings me to my next point...
Why can't we categorize custom material parameters such that they ALL don't show up in every material. Once you drop them into a project environment, the list of empty custom parameters would be HUGE. Scratch hardness is very relevant to Tile and Flooring but irrelevant to drywall or carpet.
Another example is glass, which has several has issues as well... Glass is made up of multiple panes with an interlayer sandwiched within it... And that is ONE pane... What about sealed IGU's. Inner Pane, outer pane, sealed gaseous space; and in every new window... But all we have is an extrusion that calls out what "Material" is, while there are millions of combinations which directly affect the U Factor, SHGC and VLT of the window. Oh yeah, and there is reflective and color to contend with also.
To go a step further, having materials be capable of assignment to System Family Layer Functions (Structural, Substrate, Finish 1, etc) and expanding those categories would make Revit more intuitive as well, and I would strongly argue that a material should be its own "family" since there are so many moving parts to them...
I could go on and on with improvements to materials... but I'd rather settle for a Render Asset API and just do them myself.