Alla fine qualcuno se n’è accorto. :D
Anticipo parte delle conclusioni. Il motivo è strettamente di ottimizzazione (che nella VM di Python, si sarà capito, è un mantra).
Diciamo che in un’implementazione “da manuale” si sarebbero dovuti effettuare due POP per prelevare entrambi gli operandi, e una volta ottenuto il risultato della “somma” eseguirne il PUSH nello stack.
Nel codice in esame, invece, si preferisce che la seconda operazione sia una TOP, che non fa altro che leggere il contenuto della cima dello stack senza però modificarne lo stato (il valore letto rimane sempre nella cima).
Una volta ottenuto il risultato lo si sovrascriverà alla cima dello stack, come ci si aspetta, appunto, al completamento dell’operazione.
In soldoni è una sottigliezza che fa risparmiare un’operazione di decremento e una successiva di incremento del puntatore alla cima dello stack.