¿Por qué los programas usan pilas de llamadas, si las llamadas a funciones anidadas se pueden incorporar?

¿Por qué no hacer que el compilador tome un programa como este? function a(b) { return b^2 }; function c(b) { return a(b) + 5 }; y convertirlo en un programa como este: function c(b) { return b^2 + 5 }; eliminando así la necesidad de la computadora de recordar la dirección de retorno de c...