IMHO this is a better approch. The problem is, as Charles mentioned, any kind of data would go in a VARCHAR(255) field, making it dificult to sort by dates or so. I think that if a data type is a date, it should go in a date field, and the same for integer, string, etc.
It is a compromise, you can not have a flexible scheme and have precise field type. Otherwise a more classic DB format would do better.
I agree that it is not ideal for sorting but what are we going to sort on ? Contact Name (we can split the Name and Surname in that case - see second BD format).
The phone numbers are string, email are strings, date entered as YYYY/MM/DD can be sorted with strings. it is not most efficient for the SQL DB but it can work.
For the other field, I can not comment as I have no idea what a VCARD contains, and what the devlelopers are planning to achieve.
Thomas