Это скорость.
Вообще все типы, методы, функции, поля, переменные, константы - образуют собой дерево, которое заносится как я понимаю в стек (а может и по другому). И если допустим мы вызываем метод, тогда чем ближе какой-либо обьект лижет в ветке данного метода, тем быстрее произойдет поиск / вызов / операция.
Global value:Int = 100
Function Test()
Local value:Int = 50
DebugLog value
EndFunction
Function Test2()
DebugLog value
EndFunction
Function Test3(value:Int)
DebugLog value
EndFunction
Функция, метод или тип представляет собой что то вроде ветки. Быстрее всех выполнится функция Test3 самой медленной будет Test2.
В одно время Oxid высказывал свое мнение по этому поводу : если в функции обьявить локальную переменную и назвать ее коротким именем, то есть шанс что переменная занесется в регистр процессора для мнгновенного доступа.
Для глобальной функции приоритет приблизительно таков : аргументы->локальные переменные->глобальные переменные.
Для метода : аргументы->поля->локальные переменные->глобальные переменные внутри типа->глобальные переменные.
С вызовом функций и методов тоже самое, если какая либо функция вызывается много раз внутри другой - то лучше сделать эту функцию приватной.
А если рассматривать целиком весь БМакс, то он весь состоит из чунков (порций кода), - отсюда его модульность.
По идее глобальную функцию (и не только ее) можно вызвать класически : DrawImage(image,x,y,0)
А можно явно указать с какого чунка вызвать функцию : brl.max2d.DrawImage(image,x,y), в той же степени это относится ко всему остальному.
Хотя на самом деле компилятор на стадии формирования кода все вызовы приводит ко второму виду.
Для пытливых - можно пойти еще дальше : brl.max2d.TImage(image).Frame(0).Draw(...) - но это уже черезчур =)