The ./Setup interface should not support external commands, it seems an unintended byproduct of the implementation that the ./Setup interface supports them.
It's not documented, and I don't think desirable.
I am working on a patch to refactor the implementation so that only cabal-install supports the external commands.