Before we go too deep into this, I just want to acknowledge how weird, complex, and indecipherable the SVG spec is. If you’ve ever tried writing an SVG parser. It’s a nightmare and there is no one true correct rendering for an SVG (when you get deep into it).
That being said, I spent a good while in the spec, and decided an example is probably best to help me grok this, and help others.
The SVG is 101mm wide and 100mm high. Which tracks with this.
The contents of the SVG should scale to the width/height. Here are two examples, one is 101mm x 100mm and one is 202mm x 200mm. If we paste into https://www.svgviewer.dev/ we’ll see they show basically the same SVG. The difference being one displays bigger, even though the contents of the view box and svg are identical.
101mm x 100mm
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="275 596 765 761" width="101mm" height="100mm">
<line class="centerline" x1="275" y1="596" x2="765" y2="761" stroke="red" stroke-width="4" />
<line class="centerline" x1="275" y1="596" x2="1040" y2="1357" stroke="blue" stroke-width="4" />
</svg>
202mm x 200mm
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="275 596 765 761" width="202mm" height="200mm">
<line class="centerline" x1="275" y1="596" x2="765" y2="761" stroke="red" stroke-width="4" />
<line class="centerline" x1="275" y1="596" x2="1040" y2="1357" stroke="blue" stroke-width="4" />
</svg>
If we change the view box, we see the contents gets smaller, because the contents is created relative to the view box.
101mm x 100mm with a 200x200 view box
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 200 200" width="101mm" height="100mm">
<line class="centerline" x1="50" y1="50" x2="150" y2="150" stroke="red" stroke-width="4" />
</svg>
101mm x 100mm with a 400 x 400 view box
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 400 400" width="101mm" height="100mm">
<line class="centerline" x1="50" y1="50" x2="150" y2="150" stroke="red" stroke-width="4" />
</svg>
My Conclusion
The SVG Importer does read the mm width/height and keeps them into account, it will always be the same size regardless of the current documents units.
The SVG Importer should scale the internal contents of the SVG to the width/height so that the L shape has a bounding box of 101mm x 100mm