Re https://bugs.python.org/issue40608.

I think it will be an act of kindness to deprecate Py_TRASHCAN_SAFE_BEGIN/END in 3.10 and tell people to use Py_TRASHCAN_BEGIN/END instead.

TL;DR: There was a change in 3.8 that introduced the latter while leaving the former for backwards compatibility, but also inadvertently breaking them. This is not an easy bug to deal with in the wild, we found it because we have a unit test in our codebase referencing https://bugs.python.org/issue16602.  A deprecation note pointing to the new macros would have made it easier.

Is there any reason not to deprecate the old macros?

Irit