Even in the case where an opEquals method takes a constant reference to an argument, the compiler will create a copy. For large objects, this seems wasteful in the common case. Would you consider a library, compile-time setting to not ensure left-to-right evaluation? This would allow script writers to treat "==" like a direct call to opEquals.
In C++ all the overloaded operators in a class evaluate the argument list first, effectively making them evaluate right-to-left. I understand that AngelScript already differs from C++ in the handling of operators, and some of those differences may justify an "always left-to-right" evaluation requirement. For instance, with a single opEquals overload, AngelScript will allow comparisons using that object when it appears on either the right or left side of the "==" operator; C++ only compiles if the object is on the left.