W3C の仕様では、次のように述べています。
'transform' 属性の値は <transform-list> で、指定された順序で適用される変換定義のリストとして定義されます。
...
変換のリストが提供されている場合、最終的な効果は、提供された順序で各変換が個別に指定されたかのようになります。
Firefox、Chrome、IE10 で次のマークアップを試してみたところ、3 つすべてが最初に翻訳を行い、次に回転を行うことでレンダリングされました。codepen スニペットを参照してください。ここで何を見逃したのですか?または、3 つのブラウザーの実装は W3C に準拠していませんか?
<svg width="180" height="200"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- This is the element before translation and rotation are applied -->
<rect x="0" y="0" height="100" width="100" style="stroke:#000; fill: #0086B2" fill-opacity=0.2 stroke-opacity=0.2></rect>
<!-- Now we add a text element and apply rotate and translate to both -->
<rect x="0" y="0" height="100" width="100" style="stroke:#000; fill: #0086B2" transform="rotate(45 100 50) translate(50)"></rect>
</svg>