The solution is to combine all 3 actions into a single interface:
- Sharing is still done via the convenient 'messaging' interface - Each 'chat' is actually a collection of 'events', each event is tagged with the members of the chat - Searching is done via people, which is faster and more accurate than face detection/NLP, and is how our brains index memories anyway.
For example, you went on a trip with your family in 2006. You want to find those photos, you can either open the 'chat' with your family or any member of the family, as chats also inherit events they are a subset of (this can be toggled). As long as you remember at least one person who was part of this event, you can find it virtually instantly.
Unlike an actual messaging platform, the tagging/chat system here doesn't require the other people in the event to actually be on the platform, or real people. For example, you can tag a baby, or a pet as a placeholder to still gain the benefit of searching via that parameter. You can also choose to assign the placeholder in the future to a real person, and they will replace the placeholder. For convenience, placeholders can also be assigned from phone contacts, and if/when they register, they immediately inherit the placeholder's events.
Finally, the effort of finding the photos to contribute to a 'shared album', or in this case an event, shouldn't be duplicated. If you are added to an event, the 'Smart Suggestions' feature simply shows you photos in your gallery in the same time range as the event.