We already do this in STANDALONE_WASM mode. In this most we have crt1.o which defines start which calls __wasm_eval_ctors then main then exit.
Doing the same thing for the normal code path should simplify the codebase and could be a codesize win (since we would no longer need to export __wasm_eval_ctors to JS).