Do you remember phonebooks in feature phones? Where you write a name, and you add a number, and get on with your life? Well, it's impossible to use vCard as a phonebook equivalent. Case in point: say, i want to add a taxi service to my Android phone. OK, I create a contact, and... and then what? Do write "Taxi" under First Name? Or under Last Name? Or maybe under Nickname? Not everything has a first or last name, you know. An old feature phone phonebook solved this problem perfectly - a name and a number.
Case in point number two: home numbers. Suppose i know a guy who has a mobile number and a home number. Where do i put his home number? Under his name? So if i also have a contact for his wife, do i put that number as her home number too? No? So each time his wife calls me from her home number, my phone tells me it's him, instead of simply notifying me that it's their home number? File it under a different vCard? Well, what's the point of vCards if i have to file home numbers under different contacts anyway - wasn't this the problem vCards were supposed to solve?
Case in point number three: sending contacts to others. Suppose i have a contact for one of my friends - i have his two mobile numbers, his home number in different countries, his home addresses in different countries, his nickname, his birthday and all that - in other words, i have his vCard choke full of personal data. So, when i want to give my number to someone else, i go "hey, let me send you his contact"... and send all this other info that i'm not necessarily willing to share with this person? Oh, "just send a number" you say? Well again, wasn't this exactly the problem vCards were supposed to solve?
See? It's broken. It works well for address books and such, but it needs way more robustness in both fields and how they are handled by software (home numbers for different people, privacy settings for contact sharing, etc.).