As you may guess from the silence, it may be hard to get a definitive answer to this question -- PEP 384's author has stopped actively participating in the Python community and I'm not sure if any core developers currently consider themselves to be the "guardians of the ABI".
That said, from a quick skim of PEP 384 it seems to be quite strict in its position that anything not explicitly included by the PEP should be considered not part of the ABI, which makes me think that only a few PyCFunction related items are considered part of the ABI (searching for PyCFunction only finds three hits). OTOH it states that if Py_LIMITED_API is defined, all definitions that are not part of the ABI will be hidden. So from that (plus the source code) you should be able to tell which PyCFunction_* functions are part of the ABI -- again it does not appear the documentation status of a function matters for this rule.
On the third hand, PEP 384 references a file "python3.def" (
https://www.python.org/dev/peps/pep-0384/#id5) and that file contains several PyCFunction_* names. Maybe this is the hard rule you're looking for? Again, being documented is not a requirement.
Another observation would be that (AFAICT) PEP 384 strictly forbids signature changes, but is mostly silent on semantics.