Réponse:   Les gains indirects sont décrits à la question précédente.

On peut retrouver ces gains si l'on connaît effectivement les registres utilisés par la fonction
carré pendant la compilation de la fonction cube (il suffit de compiler carré avant cube). On saura alors, par exemple, que les registres temporaires t0, t1, ... ne sont pas utilisés par la fonction carré et peuvent l'être par la fonction cube pour sauvegarder les valeurs intermédiaires et l'adresse de retour, ce qui évitera tous les mouvements de pile dans la fonction cube.

Plus généralement, une analyse inter-procédurale permettrait de passer les arguments dans des registres non conventionnels.