Eu sei que nas arquiteturas com as quais estou pessoalmente familiarizado (x86, 6502, etc), a pilha normalmente cresce para baixo (ou seja, cada item colocado na pilha resulta em um SP diminuído, não um incrementado).
Estou me perguntando sobre o fundamento histórico para isso. Eu sei que em um espaço de endereço unificado, é conveniente iniciar a pilha na extremidade oposta do segmento de dados (digamos), então só haverá um problema se os dois lados colidirem no meio. Mas por que a pilha tradicionalmente fica com a parte superior? Especialmente considerando como isso é o oposto do modelo "conceitual"?
(E observe que na arquitetura 6502, a pilha também cresce para baixo, embora seja limitada a uma única página de 256 bytes, e essa escolha de direção parece arbitrária.)