Probably due to historical reasons, there are two APIs to format a control's value. In all both variants end up calling either ARDOUR::value_as_string() or the Controllable's formatting function (except for panners).