The output of Layer::getProperty is a mapbox::base::Value which is equivalent to JSON. When setting the value of an enum property via JSON its value would be a string, so it would be natural to return a string too. Also, the numbers generated depend on the enum definition. They are not part of the style spec.