最近スタック・オーバーフローに 関連のご質問が投稿されており、XSL Formatting Objects について知りました。

しかし Wikipedia にある説明を読むに、XSL-FO 組版のやり方は CSS 組版のやり方と殆ど同じなのではないか、と思えてきました。そして、両者の違いについて興味が湧きました。たとえば Wikipedia の "XSL Formatting Objects" には以下のように書かれています。

XSL-FOとCSSは、良く似ている概念を採用しているが、いくつかの違いもある。 ブロックとインライン要素の概念は、CSSと非常に良く似ている。 間隔 (padding) と余白 (margin) の規則のいくつかは、CSSと異なる。 表記方向 (direction) に関しては、XSL-FO ではページの特性に沿って全て指定することができる。 (2018年4月23日閲覧)

XSL-FO と CSS のどちらを採用するか判断するための材料として、こういった違いは重要そうです。そこで、質問です。

組版をするにあたり、XSL-FO と CSS の "表現力" は同等ですか? つまり、一方では〇〇という組み方ができるものの、他方ではそれを行う方法が無い、あるいは難しいといったことはありますか? 必要であれば、両者の規格のバージョンを適当に設定して頂いて構いません。