The functions that could lock this mutex, i.e., {S,G}etProxy(), {S,G}etNameProxy(), HaveNameProxy(), IsProxy(), do not call itself recursively, and do not call each other either directly or indirectly. Therefore, the g_proxyinfo_mutex could be a non-recursive mutex.
This is a backport of core#19190