For laying out items it might be useful but for styling it is not (why would you create a separate component for each HTML element, like a button!?).
And I even don't get the styling example in the article.
Why would you use a 'primary' class on a button while the button type makes it primary?
If you style your submit button with `button[type=submit]` you are sure all submit buttons in your app look the same. There is no need to use classes. (I also never understood why it is common to add a 'table' class to a table.)
I think the main reason why most CSS files become such a mess is that style and layout are not separated.