Adding additional attributes creates an NxN problem - for each new attribute I add, I have to consider how it interacts with every other attribute.
A new material class by definition shuts all other material classes off.