Sort of implemented by the extmetadata API and Extension:CommonsMetadata, although there is no proper storage, only caching.
Talk:Requests for comment/Image information
Why not use Wikidata's Wikibase ? It seems to be exactly what we need: good internationalization method, good machine readability, support for the date datatype. The ability to add custom property could also make it possible to get an alternative to the badly inadequate category system. And of course, we could probably benefit from the many tools that are likely to be developed for Wikidata.
I think use of wikibase is an excellent idea. Use of some database was discussed in one format or another for some years now. Use of wikibase properties was raised by User:Multichill at d:Wikidata:Project_chat#Wikidata_and_Commons.
+1
Another ineresting question would be how should file metadata (exif etc) play into this.
I think the ideal way would be for file metadata to be a default that is easily overriden - I.e. if there is no author template pull the author info from exif if available (with some syntax available to the user to say there is no author info available even if exif has something)
As someone that had my camera set to totally wrong date for few years, I mistrust EXIF. It is a good default but we should be able to easily overwrite it. In case of my camera, which was still analog back then, I finally noticed wrong date when I took bunch of photographs at my first kid birth and all of them had wrong date and year imprinted directly in the photograph.
Some fields (e.g. license information HTML) can be quite large - is it desireable to store them in page_props? It currently uses BLOB for pp_value which can store up to 64k.
Another idea might be storing a reference to text stored in our text/ExternalStorage like page contents are.