There is no really fundamental reason why not, but there are some issues:
-
Those packages are possibly built twice which is annoying if the build takes a while (this is likely since we’re talking about C extensions here).
-
There is no way to guarantee that the same version of the package is used at build-time and run-time. This may cause ABI problems.
-
It goes against Don’t-Repeat-Yourself. Keeping track of the same dependencies in two unrelated places is not so clean.
-
The “gut feeling” that these dependencies really shouldn’t be considered as part of the build system. The wording of PEP 518 is about build system/build tools but that doesn’t apply to these dependencies.