Согласно комментарию под этот ответ , ссылки были введены в основном для поддержки перегрузки операторов, которая цитирует Бьярна Страуструпа:
Ссылки были введены в основном для поддержки перегрузки оператора. C передает каждый аргумент функции значение, и где передача объекта значение будет неэффективным или неприемлемо, пользователь может передать указатель. Эта стратегия не работает где используется перегрузка оператора. В в этом случае удобство обозначений важно, чтобы пользователь не мог ожидается вставить адрес - из операторы, если объекты большие.
Это означает, что перегрузка оператора не может работать с указателем. Но он не объясняет, почему перегрузка операторов указателями не работает. Почему бы не работать с перегрузкой операторов для указателей?
IMO, где используются ссылки, указатели также могут использоваться вместо них.