Themes are not enough (f.e. there isn't much you can do from a theme when it comes to an application using a header bar instead of a menu bar) and i wasn't talking about imitating Windows' style (as i said it is inconsistent).
The way i see it, things that can be interacted with the mouse should have specific styling rules (not necessarily 100% the same), things where you can input text with the keyboard should have their own styling rules that make them distinguishable and things that are static should also have their own rules. Things that group other things (group boxes, tabs, etc) should have their own rules, things that represent multiple options that are visible at the same time should have their own styling rules that clearly show the selected/unselected state. Some of these rules should not interfere with others since some elements may need to mix them (e.g. tabs can be interacted with the mouse, group elements and show multiple options that are visible at the same time). There also other cases that may be helpful, e.g., things that you can navigate to using the Tab key (buttons in a dialog) may be styled differently than things that you can only navigate via clicking (buttons in a toolbar). Similarly with shortcut keys - Windows made the Alt+ letter not be underlined unless you press alt, which i always found a bad idea. On the contrary, i'd like to see not just Alt+ be visible in a dialog but also other keys that would affect the dialog, like placing a small graphic for Return and Escape in buttons that are equivalent to these keys (nextstep had the return graphic, but AFAIK not the escape thing).
Of course i have not a clear idea of exactly what i'd do, these are just rough ideas. It is something i'd explore if i ever worked on such a thing :-). And yeah, some of it might be information overload and/or look ugly but i think it is better than the information underload we get with current looks-over-anything-else approach :-P.