For WebAssembly programs to work syscalls and storage stuff would have to be wrapped so that each platform has its own implementation with the same interface.
This isn't that strange of a concept, it's how stuff like Java has worked, but for it to truly feel native the companies that control the platforms would have to coordinate on it and integrate it. Unfortunately I don't see that happening quickly, but perhaps eventually.