Pilha de memória / pilha faz parte do espaço de endereço do processo, portanto não há necessidade de salvá-los. Sim, eles podem ser deixados lá. Cada processo teria seu próprio endereço inicial na memória física.
Os processos parecem estar usando, do ponto de vista do usuário, seu próprio intervalo de memória a partir de 0x00000000 (alguns acessos de trap de sistemas operacionais na primeira página 0x00000000-0x00000fff para capturar ponteiros nulos? - para esses, o início efetivo é 0x00001000) No entanto, a MMU remapeia a memória nos bastidores com tabelas de páginas e todas essas coisas boas. Então, é assim que a memória pode ser alocada para um processo userland, sem que o processo sequer saiba ou se importe, exceto pela quantidade total de memória (o limite superior) que ele pode acessar.
O ponteiro da pilha, no entanto, precisa ser salvo, mas isso faz parte dos registros.