Sure, I mentioned this in the original comment:
"Of course in the real world we know that sometimes people share phone numbers, like the landline number for a residence. I am going to assert that, for the sake of this model, that situation would result in an incoherent idea for a contact, because it doesn't make sense to initiate a communication through one of these protocol endpoints without knowing who it is you are addressing."
What I'm talking about here isn't a solution specifically for the problem of defining contacts in some kind of "universal contact model", although it would work given the assertion I made about this particular model. Rather, what I'm talking about is a much more general idea about what it means to be a key at all. I'm using a particular contact model to express an example of the idea, and the time intervals problem to express another example of the idea.
Another way of saying that would be this: The set based key solution is not a solution to the shared phone number model, precisely because in the shared phone number model a contact endpoint is not a candidate key. So it's not so much that the solution doesn't work in this case, but rather that the whole approach doesn't apply in this case.