Broken references in Sphinx docs

In general, adding a ! to a reference content causes it to not try to resolve, and instead only display with the appropriate formatting/semantics. This is useful for cases where the reference is not intended to resolve, such as those to objects that are deliberately undocumented, those that are removed (e.g. as noted in the What’s New), or examples (e.g. :class:`!AnExampleClass`). Versus some sort of manual whitelist, this doesn’t require any additional infra, is quick to add to existing usages, is more efficient as it doesn’t waste time trying to resolve those references and then printing a warning, and ensures those warnings aren’t emitted in the first place.

However, there seem to be some cases where, contrary to what Sphinx’s documentation seems to imply, ! doesn’t work as documented; specifically, when I tried to add it to a :c:func: in python/cpython#96016, it was treated as part of the content and Sphinx still attempted to resolve the link. Maybe it is something specific to the c domain and/or Sphinx’s legacy C domain syntax that we are still using until python/cpython#93738 is implemented, as discussed here? I can do some more comprehensive testing, but I figured I’d ask the expert first to see if this is a known limitation.