В целях определения сигнатуры функции любой квалификатор top level const
игнорируется. Это связано с тем, что это не влияет на вызывающие функции. В любом случае параметры функции передаются по значению, поэтому функция не может влиять на передаваемые аргументы.
Верхний уровень const
влияет на тело функции. Он определяет, может ли параметр быть изменен в теле функции. Это та же функция, что и при объявлении.
Так что да, это допустимо, и объявление и определение относятся к одной и той же функции, а не к перегрузке.
Стандартная ссылка: 8.3.5 [dcl.fct] / 3: "[...] Тип функции определяется с использованием следующих правил. [...] Любой cv-qualifier изменение типа параметра удаляется. [...] Такие cv-qualifiers влияют только на определение параметра в теле функции; они не влияют на тип функции. [...] "