+1  A: 

All dimensions in a path tag are in user units.
You cannot specify absolute units within a path tag, which is why the path in the middle square does not render

The simplest way i have found is to set the units using viewbox.
Set the width & height in inches.
Then set the viewbox to be the same.
This sets the user unit to be one inch.
All sizes are then specified in inches
(note: used lower case l in path tag to specify a relative move)

This displays correctly in inkscape & FF

<svg
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   version="1.1"
   width="8in"
   height="4in"
   viewBox="0 0 8 4"
   >
  <g transform="translate(4,0.5)">
    <rect
       width="1.111"
       height="1.111"
       x="0.1111"
       y="0.1111" />
    <path d="M 0.1111,0.1111 l 1.111 1.111" style="stroke: #ff0000;stroke-width:0.01"  />
  </g>

</svg>
Greeny
This indeed seems to work as expected! The images produced by inkscape, ff and convert all look the same but have a different size that corresponds to the 96:90:72 ratios in the default dpi. At least in inkscape this is easy to change, anyone an idea how to get convert to produce the same?. Both inkscape and convert can create pdf's that print a box with line that is 1.1111 inch in size.
BlackShift
Perhaps I do not understand the -density option from convert. This works: to change the default dpi from 72 to FFs 96 you have to specify sqrt(96*72)=83.1 as density (for the input file). So 'convert -density 83.1 inputfile.svg outputfile.png' gives the same image as firefox does.
BlackShift
A: 

I have had a similar issue using apache batik to embed an svg in a pdf using iText. iText uses 72 dpi, the standard for pdf, while batik uses 96. To get the image to appear correctly, ie, to scale, in the pdf, you need to divide the width=x cm height=y cm in the svg header by 1.33 (96/72).

John Barça