If CSS is a stopgap, then HTML is a stopgap. What other technology for styling HTML and browser web pages do you think should exist? What do you think should replace it?
The idea that we're trying to build medium-scale application UIs using a tool set intended to mark up documents with modest formatting requirements is still as crazy as it always was. Pragmatically, we can do it and make stuff work, and because of the compelling advantages of browser ubiquity and the distributed nature of the Web, we put up with the shortcomings, at least for now.
However, none of HTML, CSS or JS is actually very good for full application development. We had better technologies for native applications decades ago. If mainstream operating systems had solved their application deployment, maintenance and security problems within the same time frame, web apps would probably never have existed, and developing modern front-end code for distributed software would probably be much, much easier.
HTML is holding up pretty okay at it's stated mission. We're able to learn to avoid the shit parts, and we're able to build abstractions on top of it. CSS is failing at it's stated mission, which is to separate style from markup. Only the simplest toy apps can separate style concerns in practice. The whole thing is shit, there's no good part, and there's no way to compose it or build abstractions, except to just do it in javascript.
Keep in mind that even Rebass uses CSS to style.