Because in the documentation it is; and a violation of the API can give a working application today, but not tomorrow.
A few problems you may encounter:
sys.builtin_module_names initialized inside Py_Initialize , so it will not contain your modulePyImport_AppendInittab does not accept any locks, so if you call it after Py_Initialize in a multi-threaded application, you may get memory corruption.
source share