Here we have a round-up of piss-takes of Dan Brown, all making the same point: since "da Vinci" means "from Vinci", referring to Leonardo da Vinci as "da Vinci" is like calling Jesus "of Nazareth".
I've not read The Da Vinci Code, and reserve judgment on something that millions of people think is brilliant and millions think is crap — how am I to know which camp I'd fall into? But, even if the book is crap, this particular criticism of it seems to me pretty stupid.
Place names are one of the many origins of surnames. How about people called York or Derbyshire? How about the long-established British tradition of referring to noblemen by the place of which they are a lord — calling the Duke of Wessex, for instance, "Wessex", or Robin Hood "Loxley"? Come to think of it, how about Leonardo di Caprio? Can we refer to him as "di Caprio", or is that stupid because "di" means "from"? No-one takes the piss when we call Robert de Niro "Mr de Niro".
Now, yes, there is a difference between di Caprio and de Niro, who got their names because of where their ancestors came from, and Leonardo, who actually came from Vinci. But that's where surnames come from. You meet a guy called Cooper, his ancestors actually made barrels. At some point, one of his ancestors stopped making barrels but kept the name. That doesn't make the name wrong. The reason these mere descriptions turn into names is that they get used for hundreds of years. Leonardo's "da Vinci" has been used for hundreds of years. In English, at least, it now has the status of a name.
Here's the smell test. If "da Vinci" really does just mean "from Vinci" and isn't a name, then we should be able to call Leonardo "Leonardo from Vinci" without any eyebrows being raised. We can't.
Oh, and "The Leonardo Code" is a crap title.
How stupid is it to call John McEnroe "McEnroe" when his father's name isn't Enroe?
Referring to Leonardo da Vinci as "da Vinci" is not like calling Jesus "of Nazareth". It's like calling Jesus "ha-Natzrati". Except that even that would be wrong, because Jesus was actually known as "ha-Notzri", meaning "the Nazarene". Early non-Jewish Christians wrongly supposed that a Nazarene was someone from Nazareth, and the mistake has stuck. So, in their attempt to take the piss out of Dan Brown's supposed ignorance, everyone who's made the "of Nazareth" joke has displayed rather more of it than he has.