GH-91079: Rename C_RECURSION_LIMIT to Py_C_RECURSION_LIMIT by vstinner · Pull Request #108507 · python/cpython
I don't think that it makes sense to override the Py_C_RECURSION_LIMIT constant. Python does hardcode this constant in its code. For example, init_threadstate() sets tstate->c_recursion_remaining = Py_C_RECURSION_LIMIT;.
Building Python with a different Py_C_RECURSION_LIMIT value sounds like a borderline usecase. If someone cares about fine tuning Py_C_RECURSION_LIMIT, I would suggest adding a ./configure option. Currently, building Python with a different C_RECURSION_LIMIT value leads to inconsistencies for C extensions built with the default Py_C_RECURSION_LIMIT value (1500).
Including <Python.h> and overriding Py_C_RECURSION_LIMIT sounds like a bad idea: Python will anyway uses its hardcoded constants (ex: in init_threadstate()), changing the constant doesn't change Python behavior. It only leads to inconsistency.
In short, IMO it's a good thing to remove #ifndef C_RECURSION_LIMIT :-)