ATM index == series returns an ndarray because Index.__eq__ does not return NotImplemented. It isn't clear to me what the reason for this is. The special casing leads to a non-trivial amount of complexity in the code and especially in the tests.
We should deprecate this special casing.