#manu1If you didn't put the "#" in there, then the "fn" URL would become this: http://www.w3.org/2006/vcard/nsfn (note the last bit of the URL - it doesn't exist)
#manu1That is, if a machine tried to go to the 2nd (incorrect) URL, a machine would get a 404 and wouldn't be able to discover anything more about the "fn" property.
#manu1sandbags, there are cases where you can't infer it - for example, the latest Dublin Core vocabulary is: http://purl.org/dc/terms/ - which results in the following url for the "title" property: http://purl.org/dc/terms/title
#manu1automatically adding a "#" would blow up in that case. I say this understanding that it would have been nice if there were one way to create vocabulary URLs.