Dlaczego programy używają stosów wywołań, jeśli można wstawiać zagnieżdżone wywołania funkcji?

Dlaczego nie chcesz, aby kompilator pobierał program taki jak ten: function a(b) { return b^2 }; function c(b) { return a(b) + 5 }; i przekonwertować na program taki jak ten: function c(b) { return b^2 + 5 }; eliminując w ten sposób potrzebę zapamiętania przez komputer adresu zwrotnego c...