
Perhaps the easiest way to fix this is: On font assignment, check if the variant name is "standard" and is going to be translated into CSS without loss. In that case, do nothing as now. Otherwise, store the complete font name (family + variant) in the "font-family:" property, approximating other properties as best we can. Then on reading the SVG, see if the font-family matches any available family. If not, try to interpret it as family + variant. (This is just a rough outline; it's been long since I looked into that code, but I think this should work. Alternatively, we can add a custom CSS property for storing exact family+variant, but this will be much more cumbersome to implement.)
Somehow, Win32 manages to name the variants normally, ie "Normal", "Italic", etc, so I think an even better solution than this must exist. I don't think I've got any fonts with many different styles (eg italic and oblique separately) so I couldn't say what it does with them.
I agree that trying to guess a font's style from its name is a ridiculous thing to do.
Richard.