> "[calling a procedure] acts to insert all lines of the named procedure into the executing program at the point where the call occurred"
But that notoriously has its own issues - the various variants of the funarg problem, which were essentially solved by switching to lexical scope.