I don't understand why they didn't do something like this instead:
div.foo#thing {
text: "Foo"
}
Generates this: <div class="foo" id="thing">Foo</div>
I realise that there's issues with css name collisions, but there's different ways that can be resolved by the compiler.