8413 and 8373 related changes

See #8413 and #8373 

- [x] check coverage, especially the handling of duplicate args by Xor and Equivalent

(If anybody would like to take this over, that would be fine with me.)
I'm thinking about Expr.equals.  We should unify docstrings in some way.

Also, Expr.equals has `failing_expression` kwarg.