If a spec of the ?sqlite database schemas could be added to the internals docs, this would open some possibilities for third-party tools based on this info. E.g. one could write some sqlite3 queries to get aggregate info on the number (and total size?) of keys present in specific combinations of repos. It would of course be understood that this is internal info subject to frequent change.
Also, if Sometimes the databases are used for data that has not yet been committed to git, this would improve future proofing.
There are not any situations where after losing the sqlite databases git-annex can't recover the information that was stored in them by other means. I know because the v8 upgrade deletes all the old sqlite databases and then recovers the information by other means. So no future-proofing impact here.
It's easy enough to dump the database and see its schema.
Or the fully typed schema can be looked up in the haskell code (Database/Keys/Sql.hs)
I think that how the information in the databases relates to the state of the repository, and how it's updated from the git-annex branch etc is just as important as the schema. For example, if you wanted to use this database to query files using a key, you'd need to know this database only gets populated for unlocked files not locked files. And that the database may not reflect recent changes to the working tree, and there's a complicated process that can be used to update it to reflect any recent changes.
That's rather deep into the implementation details to be documenting outside the code.