再現しました。
空行があくというより、pre 要素に対して CSS での margin が body 要素の直下にあるときと同じような値で設定されているようです。
例示された HTML には DOCTYPE 宣言がないから下方向だけなんですが、HTML 4.01 Strict など Strict モードが有効になる DOCTYPE 宣言があったりすると、上方向にも同じ margin が設定されて、td の中だろうがお構いなしにいつもの pre が中におしこまれた形になります。
義理を考えず実利優先の解決策をとるとすると、HTML の head 要素内か外部スタイルシートで次のように指定することになります。
引用:
/*
* td の中にある pre は margin を CSS で設定する
* 値はお好みで
*/
td pre { margin: 0 }
Firefox 1.5 (のレンダリングエンジン Gecko 1.8)がおかしい、となると、「Quirks モードでの後方互換がなっとらん」という理由でバグ登録できるか探ることになります。ただ、過去に気付いた人と開発スタッフが議論をやった可能性は十分にあって、過去に報告がないか
Bugzilla 本家や
Bugzilla-jp を丹念に探したほうが行儀がいいです。私は今はその気力がないので騒ぐのはこれで止めにします。
# トリビアとしては </pre> は必須で </td> は省略可なので <tr><pre></pre> なら valid になるという話はあり、私も気になるから書いたのですが、画面デザインには関係ありませんでした