Unlike LLVM, control flow is actually structured, no arbitrary jumps, functions, tables, real harvard separation of code and data.
The restriction to only number types, is more a byproduct of trying to keep the 1.0 spec as mvp as possible, and reference types are gonna be a big shift in that regard.
I mean compare these two. One is a (very low level) language, the other is (high level) assembly.
https://developer.mozilla.org/en-US/docs/WebAssembly/Referen...
https://mapping-high-level-constructs-to-llvm-ir.readthedocs...
If you ever try to write WAT by hand you realize that it's very much a compilation target, not something you'd ever want to manually write.