Maya uses cm internally, and it's shamefully inconsistent about applying unit settings. Most systems and commands work in you work unit, but not all. Off the top of my head a few of the holdouts are camera settings, polySelectConstraints, and (as in your case) all API based geometry calculations.
for cases like this usually have a corrective function to translate the values into my expected units. The function is trivial:
def scene_unit_linear(val):
_IN_CM = {'m':100, 'in':2.54, 'cm':1, 'ft':30.48}
_scale = _IN_CM[cmds.currentUnit(q=True, l=True)]
return _scale * val
Unfortunately the hard part is knowing when to use it :( Also (and this is important!) you need to use the appropriate power if you're getting a two or three dimensional value. In your case, you'd need to square it since you're getting an area value: 1 square meter is 10,000 square cm, not 100!
def scene_unit_area(val):
_IN_CM = {'m':100, 'in':2.54, 'cm':1, 'ft':30.48}
_scale = _IN_CM[cmds.currentUnit(q=True, l=True)]
return _scale * _scale * val
world_area = scene_unit_area(face.getArea(space = "world"))