Given that context, due to the nature of the problem, rate limiting is by definition the -only- solution to the problem (if I'm understanding the problem correctly.)
You do have a point that perhaps the question we should be asking should be 'how do we detect mutual connections,' but that's another story altogether.
The question of whether services should even be DOING this kind of open book "does this phone number have a user attached and what is their name?" query is more fundamental than any other question, imo. It's not another story, it's a skipped first story.
Case in point: I work with a guy who used to work at his dads office. He and his dad both have the same name, and they both had the same office number. This algorithm would incorrectly identify both people as being the same person when in fact they are not.
You are thinking from the point of view of a database administrator, whose job it is to make it easy to uniquely identify an entity.
In security it's about making it as hard as possible to deduce even the slightest of information about a person, increasing the k-anonymity as they say.
For all intents and purposes, that a phone number resolves to only two people, and they're also conveniently located geographically near to each other, and are probably very distinct in a whole range of other things, makes it the perfect key for any security adversary.