HW-TnLでもシェーダでもソフトエミュでも、
それ以上ユーザが低いレベルで使えるAPIが存在しない以上、
D3D内のインタフェイス上から実行されているのならD3Dの機能。
そもそもドライバ側がD3Dの機能の一部として使えるように書かれている。

>プログラマが任意にvector * matrix使いたい場合は
それは自前で計算する以外にはない。
割合的には多くないが、最適化したいのなら、アセンブラでも何でも使えばいい。
ただし少ない部分を最適化しても、全体のパフォーマンスが上がる可能性は薄い。

逆に質問するが、処理負荷の中心である、
頂点*行列のほとんどはD3D側で行うことになるわけだが、
これをどうやってアセンブラに置き換えるのか?