It's worth looking at the current pitch for custom executors, since right now that actually uses a compiler flag pointing at a factory type to set the executors, which is a reasonably clean way to do things (the compiler's synthesised main function passes that type to the runtime, which uses a couple of properties to fetch the desired executors).
I think that would be an improvement, personally. It'll require the LSG to buy in to it, but the fact is that
@main
struct Main {
public static func main() {
...
}
}
is a very verbose way to write things. I think @Ben_Cohen has commented previously that we seem to have ended up with even more ceremony than Java, somehow, so my guess is that he'd be supportive.