To prevent that from happening you've got to deny access to the addressbook altogether, which isn't desireable if you don't want to kill the market for Voip/Chat on mobile phones.
Apps like Whatsapp, or the Voip/Xmpp client I am working on for my company just need a way to determine who on your contactlist is available for chat/Voip via your app.
Also: how do you think that apps like Skype enable you to call some landline number for a cheaper rate? They do this by creating a local dialin number that routes the caller to the actual destination.
What could work is that the OS gives hashes instead of the real numbers to the apps, but that would suck for anyone that had a web service that needs those numbers. (for say creating a cheaper dialin number to call some of your contacts)