Blender bug with metric units
By default Blender interprets input at the base unit measurement in that system. All you need to do is to input a unit as well as a quantity and this will work as expected (i.e. 12m or 12cm etc.)

As you have noted in your question, changing the Scale option changes what this base unit is. In your case the base unit is cm, so for any other unit of measure, you must input that unit after the numerical input.