I just noticed that cube.convert_units works when the cube doesn't have an existing unit.  E.g.:
mycube = iris.cube.Cube(1.)
mycube.convert_units('mm day-1')
print mycube
print mycube.dataproduces this output:
Shouldn't convert_units produce an exception if it doesn't have a unit to map from?