As a software engineer and avid Star Trek fan, the day-to-day business-logic demonstrated by the Enterprise-D's computer systems is a constant source of speculation and delight.
Remember when the Captain says "Picard to Riker", it's not a simple shout-and-holler comms system at play. That request goes through a ship's computer that is fantastically more complex and advanced than anything we've got today. There would be a slew of heuristics at play, including:
- The relative ranks of the individuals involved, and who the Captain is most likely to want to talk to at any single moment, given the state of the ship (alert status, proximity of aggressors, etc.)
- Duty rosters, i.e. who's on duty at any one time.
- Proximity. You're unlikely to request comms to a crew-member who's standing in the same room as you.
- Comms histories for the individuals in question, stretching back, no doubt, to the day they both stepped foot on the Enterprise for the first time.
- Predictive algorithms. The computer probably knows when Picard will ask Beverley over to dinner better than the Captain does.
It's likely the crew will acclimatise to these heuristics and know when to hint at who they mean. The Crushers must have been particularly troublesome for Picard. It would be interesting to see if he ever said "Picard to Crusher" with no hints given and still got to the right person.
Even better would have been the computer answering to a season one Picard "There are two crew members matching that pattern. Please specify." and seeing that awful impatient streak of his come to the fore!