freetypeのバージョンが古すぎると、必要な情報がうまく読めなかったりします。
たとえば、2.2系では、縦書き用のGPOSテーブルの読み込みで問題が起きます。
もっと具体的に言えば、WebKitがレンダリングする結果がこうなります。

freetype 2.4.8

freetype 2.2.1
Linuxでインストールされているfreetypeのバージョンを確認するには、以下のコマンドを使います。
freetype-config --ftversion
フォントはIPAmj明朝を使いました。フォントによっては、そもそも縦書きグリフが収録されていないものもあります。