Some other comments.
Themes can be applied in 2 ways, as customizations or "stylesheet" forms which support two potential scenarios:
Customization of a site, post development (theme="mytheme"). Any theme applied in this manner overrides the control itself and therefore means that if controlled through a config entry can be used to affect the site simply This is regarded as a non-development scenario and themes applied like this are not supported in the designer
Stylesheet themes, during development (stylesheettheme="mytheme"). A theme applied in this manner is applied to the control before it's declarative property sets, and allows for the same logical abstraction of let's say, styles, like CSS into a form that can be repeatedly consumed. Then, like CSS, the control's property sets 'being most local', override that defined through the theme. Note that this form of themeing IS supported in the designer.
It is true that like server controls, style property sets will result in an in-line style, so the skin/theme also will result in the same and ptentially increase the payload. The skin/them though is not necessarily bound to stylistic propeties, it can be used for template definitions (hence contrent), and collections too (hence content). In fact it is the control that effectively defines properties that arre themeable.
Since themes can be a collection of skin files (controls propetrty sets), but also other resources, like CSS files, images etc (since they can be applied as a property set), the theme gives a good logical grouping of the factors that a developer might want to use to apply look and feel to a site, in both manners described above.
Strongly-typed properties, which of course give good programmability in the control sense, do abstract the page developer from requiring good knowledge of CSS. Similarly, the related attribute properties in the declaration of a control also simplify development. However, there are great arguments for using cssclass definitions too.
Of note I think also, are the manners in which you can programmatically select themes and skins(customization themes), during a framework lifecycle, rather than having to cope with potential cssClass changes, or even linked .css file changes. Even if you set up a theme to be a folder with a CSS defining known css classes, then simply selecting the theme means that the framework will add the css reference to the response/rendered page and rebase the url to that css for the page.
Ultimately, it comes down to a combination of what are the skill-sets, requirements for payload, development paradigms and scenarios that you are trying to achieve.