For another example, the LLVM webassembly backend doesn't put the call stack in the same address space as the heap at all.