Interesting, as I understand branch hinting is already WebAssembly proposal that is being worked on. Perhaps it could be use to segregate away the "cold" blocks (branches). Moving cold blocks into functions (as the only existing modularization concept in wasm) seems quite complex and possibly introduce a performance penalty when calling cold code. Also, I wonder if the (tiered) WebAssembly runtimes would even be smart enough to treat hot functions differently from cold ones. But I am really out of my depth here, not sure if any of this makes sense.
In a more general sense: Emscripten once had PGO, which now seems to be deprecated (is it?). Are there any plans to bring it back? We've got some very specific workloads, for which we have performance profiles that we'd love to feed back into the build process.