Hi Ian
I have been doing some research into this and have come to similar conclusion. The SVG standard seems to deliberately avoid specifying a DPI or conversion between physical units, like mm, and its "User Units" or pixels, so I am not sure that Scan'n'Cut is doing it wrong, more like it is open to interpretation/implementation. Apparently the CSS standard is 96 DPI, though I haven't verified that, and I have also read that Inkscape default DPI was changed from 90 to 96dpi in version 0.92 (I am still using 0.91). There is some info about that here on the Inkscape wiki
http://wiki.inkscape.org/wiki/index.php/Units_In_Inkscape#Inkscape_.26_UnitsWhat I have found is that I can hack the files to add in a scaling transform that will give the correct results. If I alter the "transform" element to the path attribute with a scale to compensate for 90 to 96 dpi it works, so change the two "1"s in the matrix to 1.06666669. This...
<path id="A01" transform="matrix(1, 0, 0, 1, 178.866141732283, 54.9035433070866)"
to this...
<path id="A01" transform="matrix(1.06666669, 0, 0, 1.06666669, 178.866141732283, 54.9035433070866)"
From what you say I can understand why you have used 90dpi on your converter, but if the Scan'n'Cut, CSS, and now the latest version of Inkscape are all using 96dpi as some kind of defacto standard it might be time to consider changing, or putting in an option.
Thank you for you work on this converter and making it available to the community!