Since gpg-agent now handles files in the homedir (e.g. secret keys), gpg should
not use a gpg-agent that has a different homedir. I am not sure how to do this,
but you probably know or can make one. (help getinfo suggests socket_name but I
don't know how reliable this is).
I am not sure there are valid use cases that justify re-using a gpg-agent with a
different homedir, in favour of just starting a new gpg-agent with the right
homedir. This might be defensive but I think is for the best.
Some logic (such as --delete-key) involves both the public keys and the secret
keys. If gpg and gpg-agent have different views of them, then probably bad
things will happen. Even if you as the gpg developer thinks this is not the
case: outsider developers and users, that want to interact with gpg, will find
it very confusing to have to reason about gpg and gpg-agent that have different
homedirs.