But realistically, how often do you do that? How often do you restyle whole application without touching any of the html?
I find it more frequently that people want to change “just this padding”, “just a font on this page”. And you end up with multiple classes. And when you have classes, you have to apply them to elements. And then you end up with multiple types of elements. Why not use elements as a ground base for your styles?
You don’t want to update fonts across all components. You just want to update <LargeP>, <MediumP> and <SmallP>.
You don’t want to update a padding value in every component. That would be insane, just try it. You have different components. With different padding needed. You have <Text>, you have <Article>, you have <Layout>. You don’t want <SmallPadding>, <LargePadding> (though you could have them). That’s just a different level of thinking. You don’t want to add style to all <Article>’s. You want to change an Article itself.