I had a whole answer about why the font-size didn't work on the body, but now I see you had a typo, which was one of the possibilities I was going to suggest.
In the past ems were recommended over px because with px you couldn't resize the text in IE. I think IE8 fixed that, but IE7 may still need the relative measurements.
It's up to the browser and maybe the individual changing the browser settings for the default size. 16px is the common default, though it's possible browsers can deviate from that. Don't hold me to it, but I think all browsers may default to 16px. If not all then most.
You were right that there's an inheritance thing and it can get a little confusing. Say you have
and say you set the body to be 16px.
Now if you give the wrap1 div a font-size of 0.75em it should be 12px. wrap2 and wrap3 would also be at 12px due to inheritance. If you then wanted to change wrap2 to be 8px you might think to set it to 0.5em since 8 is half of 16, but you'd really need to set it to 0.67em since you'd need 8/12.
One trick I've seen is to set your body to 0.625em which would be 10px (assuming a 16px default) That makes your ems easier to set later since you're dividing by 10.
If you also set the widths in your layout to use em measurements you can get a nice fluid design that expands and contracts as the text is resized.