Why not? Processes are cheaper than you might think. GCC invokes several as an example.
I'm just converting the call to an external assembler in my compiler rcc to assemble the bytes directly. No need for strings and external files. The cost of the external call is outrageous.