Вы можете так думать:
У вас есть:
int get(int);
char get(int);
И не обязательно собирать возвращаемое значение функции во время вызова.
Теперь вы вызываете
get(10); -> there is an ambiguity here which function to invoke.
Итак, нет смысла, если перегрузка разрешена на основе типа возврата.