Thank you for helping me understand some points a little more clearly. I believe some previous comments address some more details that could be relevant to that:
We currently consider an independent protocol outside Equatable to be an "alternative considered". The previous pitch took this direction… but the previous pitch review and discussion compared the pros and cons of an independent protocol and I changed my mind after hearing those points. We feel that keeping this on Equatable is the right trade off for now for this pitch.
My understanding is similar: we have access to Span for types like Array… but we will not AFAIK ever have access to an easy Span transformation for types like Dictionary. Coupling our "identity equality" to Span limits our flexibility to make use of this API.
The previous pitch did not include a nil returning "default" value. This was added after the previous pitch review. We feel like nil communicates important information and context that is meaningfully different than what a false default value would represent.