MS has done a pretty horrible job of explaining WinFS, so perhaps I am way off on this, but...
WinFS is common data store with an advanced form of relations. Lets say I work in the Widget industry, and I have to run an Widget Specific application. Using WinFS I could develop a schema for the data that I want to store -- and just by using WinFS
I would get a lot of advanced capabilities.
Where it gets really interesting though, is if your industry adopts your schema, or comes up with one on their own, another application would be able to use the same data store, if you set the security permissions to allow them to do so.
Contacts is the obvious example used, because it is a concept that everyone uses -- the scema will be a little more specific, but once you have your contacts in WinFS, other applications that deal with Contacts can use that common data store so that they are
dealing with the contact objects, or sub or super sets, in the same way. If I change the Work phone number for a contact in my Widgets application, that information will also be changed in Microsoft Outlook.
It is hard to imagine right now what this means, but it opens up enormous potential in applications interacting with one another. Presumably, this puts a lot of pressure on industries to agree upon schemas, and all sorts of new incentives for developing software.
In my opinion it is a bigger change in software, if it works, than GUIs or the Internet.
I cannot think of a way in which a human being is not a very complicated machine.
People are deluding themselves if they think their mental states are not driven by physical laws, and that the their ability to learn is a result of the design or structure of the atoms that constitute them.
We obviously have several orders of magnitude to go before we get to human level learning, but it is obviously possible -- we have a prototype.
I am not sure how this would be done, but it has been my experience (extremely limited) that this stuff, even detection, takes some time (especially over a large set).
I see no reason, though, why this would not be done in the background and stored as metadata with the image. An image would then have a metadata list of number of faces in the image, their location, and then each location would have some recognition structure
(eigenface or whatever). If the face has been confirmed as someone in the contacts list, it there could be a pointer to a contact in WinFS.
Processing new images could be scheduled and done with unused cycles.