I was going to say "Hell yes! Absolutely!", but looking at it closer, it is actually not necessary (unless Yiannis has another reason to do it).
The reason why I'd have said "yes" is that
wxExecute called synchronously spins around
wxYield, which can be quite nasty when done recursively.
But... the toolrunner uses
system() to run your app synchronously, which is fine, and the toolrunner itself is called from the compiler plugin asynchronously, so this
wxYield story of mine does not hold
EDIT:And here is the probable reason: The exit code of your application. If your application returned an "error" exit code, the IDE would have no way to show that to the user unless it keeps a list of process IDs mapping to names, which would be possible, but complicated. The way it is now, it is really easy.