I have a repository layout where I have multiple unrelated branches in a single repository. Different branches have different policies regarding where their content should be replicated. It would be nice to be able to reflect this with git-annex's matching and preferred content options, but currently there seems to be no way to say "include/exclude files referred to in these branches".
It's hard to add this kind of thing to the preferred content expressions.
First, it would be quite slow to check if a given key was present in some file in a given branch. There's no index for that information.
Second, even if that were implemented, there's no guarantee at all that different repositories have the same git branches. If repo Foo wants files in branch B, and repo Bar sees that, and has no branch B, or a different version of branch B, how is it supposed to know which files to send to repo Foo?
So, I can see the use case, but I don't see how preferred content can support it.