v článku má být "nebude globální", už jsem to opravil.
Chování je skutečně na první pohled divné; v podstatě je tam rozdíl mezi lexical a dynamical scope. Když se nepoužije "local", tak se využije dynamical scope, jako v některých Lispech, Bashi a tuším R-ku. Tedy důležitá je viditelnost v runtime, ne v čase načítání skriptu (nebo compile time).