Isn't `ReferenceEquals` too strict a requirement?

What happens if we override `Equals` on either `AssemblyElement` or `DelegatingReflectionVisitor<T>`?

FWIW, I have a lot to say about equality in relation to unit testing in [my Pluralsight course on Advanced Unit Testing](http://pluralsight.com/training/Courses/TableOfContents/advanced-unit-testing) - two entire modules, in fact :)