Bei Prozessoren > 8086 ist im Übrigen überhaupt nicht (mehr) definiert, was als Wert für SP tatsächlich auf den Stack gepusht wird ([also Wert von SP vor PUSHA, Wert, wenn SP selbst gepusht wird, oder Wert nach PUSHA] beim 8086 steht das noch im Handbuch, ab dem 80286 ist es nicht mehr spezifiziert, weil bei POPA sowieso SP+=16 gesetzt wird).
Man könnte hier "weniger scharf nachgedacht" vermuten. Wahrscheinlicher war es aber in der Hardware einfach simpler, alles zu pushen und die 2 Bytes Verschwendung zu schlucken, und das (vielleicht) deshalb, weil SP ungeschickterweise mitten in der Registerbank zwischen BX und BP rumliegt statt am Ende oder Anfang, was wahrscheinlich sinnvoller gewesen wäre. Der Grund dafür könnte wiederum sein, dass man gedacht hat, dass man die vom 8080 "übernommenen" Register zusammenhalten wollte und die neuen (BP, SI, DI) hinten anhängt.