Если вы не можете использовать const, потому что изменяете операнды, вы неправильно используете перегрузку операторов.
Если вы не можете использовать const, потому что реализация вызывает неконстантные функции, вам действительно следует их очистить или, по крайней мере, предоставить альтернативы const.
Если вы вызываете код, который вы не можете изменить, который не использует const, я все равно использовал бы const, использовал const_cast в самой глубокой доступной точке и прокомментировал его.
Как указал Шмоопти, оператор гораздо менее полезен, чем он должен быть, поскольку его нельзя использовать на объектах const, даже если только один из них является const. Оператор числового равенства, который не поддерживает «a == 5», серьезно нарушил бы закон наименьшего удивления.