先の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/xhtml
namespace, 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はそれに従っているということで納得が行きました。色々と情報が得られたことに感謝。