"making the back end's job more complex than need be" -- a mordern backend decoupled with frontend will just serve data (usually formatted as JSON) via API endpoints (REST / GraphQL), it basically has nothing to do with front-end styling.
"Pissing away caching opportunities" -- as we decoupled the frontend from backend, the client-side code is now just static assets that can be served by content delivery network (CDN). With code splitting techniques applied, we lose no opportunities with caching, but actually make it better.
"attributes like align, bgcolor, color, border, etc, etc" -- welcome to the land of Styled System (https://styled-system.com/), a rapid way of using styled-components which generates scoped CSS.
Web is a fast-envolving fields. It was not born for rich-interaction applications, but we all know that web is much more capble now than ever. I would say web applications can't be so popular and widely-used without support from mordern frameworks & libraries that help us structrure things in a maintainable and scalble manner.