When doing a keylist with "GPGME_KEYLIST_MODE_WITH_SECRET" the subkeys for which secrets are available are not properly marked with the flag "secret".
I think this behavior is unintended and a bug. At least the behavior is surprising.
It can be reproduced with gpgme-json and the json snippet:
{ "op": "keylist", "keys": "testusera@example.com", "secret": true, "local": true }