This is the best breakdown of the pros/cons of utility-first CSS that I've seen: In Defense of Utility-First CSS.
This is one of my favorite lines:
The complexity of your layout has to exist somewhere. A component-first approach doesn’t remove “bloat”, it only deports it to the stylesheet. Even so, because your larger components reuse the same atomic styles as others, you inevitably end up with duplicate code.