When recording a URL from which a key may be fetched, add an option to store that URL in encrypted form (encrypted to a given public key).
E.g. record the URL as encryptedurl://key_id/[base64-encoded encryption of the original URL].

Many cloud services let you create a pre-signed URL for a non-public file.  Anyone with the URL can get the file, so the URL is "public" in that sense;
but you only share the URL with intended recipient(s), not the public.  Or you might store files in a bucket that can be publicly read but not listed, and
store files under paths like s3://mybucket/randomstring/myfile ; the URL is "public" but in practice it can't be guessed.
If the URLs could be stored encrypted in the git-annex branch, one could track such files using the ordinary web remote.  One could use an S3 export-tree
remote to share a directory with specific recipient(s), without them needing either AWS credentials or git-annex.

