This API tries to ensure some backward compatibility for properties,
but doing so in multiple-layers was causing quadratic behavior.
Instead of setAttrs() repeatingly calling to setAttr() we inline
the logic and apply it locally in a single traversal.
Fixes #62800
"discardable" sounds odd to me, in this context.
"nonInherentAttrs"?