> The problem is that Projection overrides `__eq__` ...

For my the real question is, "But why does it?" The addition of the `isinstance(self, type(other)` criterion on top of the `CRS.__eq__` semantics seems unhelpful.