This solution proposes the same as "#1 Use Microsoft Live Photo Gallery People Tags" as it will also write these Microsoft-tags a) for compatibility and b) to store a human readable name. Also, as solution #1, this solution proposes to have a new application for people tagging instead of building it into the photo viewer.
In addition to that, a set of properties from the contacts database will be identified that most probably will be unique to one person: an instant messaging account, for example, is unlikely to be shared; a mobile phone number; a facebook profile; less reliable, but usually also acceptable are mail addresses and homepages/blog URLs. The application will use these as "inverse functional properties".
A new XMP-extension will be defined to hold information from these properties. The XMP-extension can either be in the MeeGo or Nokia namespace be in any namespace. When tagging a person, an MD5 hash will be created for each of these unique properties and stored in the respective (new) XMP-fields. (MD5 hashes are used for privacy reasons so that a tagged photo can safely be shared.)
When searching for a person from the address book, the application will again create MD5 hashes from there for all the properties agreed upon as unique. It will then search for the corresponding MD5-sums embedded in the image files. This way, you can make sure that people are found even if the names are spelled/abbreviated differently (which is likely to happen if images were shared/tagged by somebody else).
MD5-hashing inverse functional properties is a technique already in use by the FOAF project. While for some obscure technical reasons we cannot directly use FOAF within XMP metadata (although both are built upon RDF), FOAF had to deal with the problem of uniquely identifying people from data available, without introducing new IDs. They came up with using things like a personal email address, a instant messaging account etc., and it worked. It will work for Maemo, too.
Pro
Using both human readable names and machine readable unique identifiers makes it much easier for any software to identify people that you did not tag yourself on your device. Again, building on XMP makes it easy for developers outside the Maemo community to pick up the idea and use the same mechanism on other platforms. MD5-hashes prevent privacy problems but still allow you to find people in images tagged by somebody else - as long as you both have the same information about the person in the image.
Con
A lot of effort needs to be put into the design of the search algorithm. (What to do if an image isn't "MD5-tagged" at all, but the names from the Microsoft-tags match exactly? Which properties are considered probably unique enough? ...)
Also, a new XMP-vocabulary needs to be carefully designed. Do we have people who are Maemo developers, know RDF and have experience in XMP?