I think styled-components set a bad precedent: mixing styling and semantics. For example, there are many times I need to use a heading of a certain level (h1, h2, h3) for semantics, but may want to style it as a heading of a different one. I don't see any way to accomplish this sort of thing, since styles are coupled with the HTML tags. Maybe I'm missing something?
More discussion: styled-components/styled-components#494.