Сказать, что перегрузка оператора приводит к логическим ошибкам типа, что оператор не соответствует логике операции, это все равно, что ничего не сказать. Тот же тип ошибки произойдет, если имя функции не подходит для логики работы - так в чем же решение: отбросьте возможность использования функции !?
Это комичный ответ - «Не подходит для логики работы», каждое имя параметра, каждый класс, функция или что-либо может быть логически неуместным.
Я думаю, что эта опция должна быть доступна на респектабельном языке программирования, и те, кто считает его небезопасным - эй, нет, они оба говорят, что вы должны его использовать.
Давайте возьмем C #. Они опустили указатели, но, эй - есть заявление «небезопасный код» - программируйте на свой страх и риск.