GN was intentionally designed to not let people launch arbitrary executables, because doing so can mean you have to install an arbitrary number of things locally, making it harder to keep your build hermetic, and it can make the build scripts more complex (and less portable) by being in a number of different languages. Everything that isn't part of a toolchain definition must be launched through a single `script_executable`, which is Python by default.
This is trivial to bypass: just write a single wrapper script that takes command line arguments, e.g. `run.py objcopy arg...`, but it's a bit of a hurdle that acts as a disincentive.
Whether or not this was a really good idea is kinda hard to say.
-- Dirk