Yeah, definitely on #1 -- it's a performance hassle.
re: #2, a higher level of specificity acts like a ham-fisted override when the original rule you prefer can't be applied. that seems the right order of precedence to me.
EDIT: i see what you mean now. an @unsupported attribute as you describe acts like an either-or. the javascript solution i'm talking about cascades like a "this-and-also-this".
For instance, with jQuery and a getStyleProperty helper[1]:
... then in the CSS: [1] http://thinkweb2.com/projects/prototype/feature-testing-css-...