The reason the difference matters to me is that someone who writes a random or
otherwise noncommutative method is (definitely) doing it to themselves. But at
least in previous versions of Lua, the language required basic safeguards by
requiring that both operands "share the same metamethod".[1]
I think you can say the same now: someone who writes an A.__eq that
says it is equal to B, when B disagrees about that, "is doint it to
themselves". Your objects should only say they are equal to objects
they know about (but, as Dirk pointed out, may need a different method).
-- Roberto