先のStylishを改造してみるの記事がCSSコミュニティスレで言及されまして、やや意外な展開となりました。かいつまんでまとめると以下のような感じ。
<title>例</title>
<style type="text/css">
@namespace h url(http://www.w3.org/1999/xhtml);
h|p{display:none;}
</style>
<p>表示されない段落。</p>
Web Applications 1.0仕様の該当箇所、1.9. Terminologyから引用すると、
To ease migration from HTML to XHTML, UAs conforming to this specification will place elements in HTML in the
http://www.w3.org/1999/xhtmlnamespace, at least for the purposes of the DOM and CSS. The term "elements in the HTML namespace", when used in this specification, thus refers to both HTML and XHTML elements.
(自分なりの訳: HTMLからXHTMLへの移行を容易にするため、本仕様に準拠するUAは、少なくともDOMとCSSのために、HTMLの要素を http://www.w3.org/1999/xhtml の名前空間に置くものとするだろう。従って、用語「HTML名前空間の要素」は、本仕様で使われる場合、HTMLとXHTML両方の要素を指す。)
とのこと。
自分も、「HTML4の要素は名前空間とは関係ないのだから、CSSでXHTMLの名前空間に属するものとして扱われるのはおかしいのでは」と思っていたのですが、理由があってそのような仕様が公開されており、Firefoxはそれに従っているということで納得が行きました。色々と情報が得られたことに感謝。