В большинстве случаев это просто для удобства. Ну а вообще динамический доступ, да и вообще обращение к чему-либо через точку (точка - это тоже оператор) затребует больше ресурсов, чем обращение к заранее закэшированым ссылкам.
Для наглядного примера можете такое у себя попробовать:

Код AS1/AS2:
var a = {};
a.b = {};
a.b.c = {};
a.b.c.d = {};
a.b.c.d.e = {};
a.b.c.d.e.f = {};
a.b.c.d.e.f.someProp = 15;
var t = getTimer();
var s = 0
for (var k = 0; k < 1000000; k++) {
s += a.b.c.d.e.f.someProp;
}
trace(getTimer() - t) // 4041
var t = getTimer();
var s = 0
var q = a.b.c.d.e.f
for (var k = 0; k < 1000000; k++) {
s += q.someProp;
}
trace(getTimer() - t) // 3061
В комментариях значения, которые у меня получились. И да, представьте, что вместо a.b.c.d.e.f будут осмысленные переменные, по 10 - 12 символов каждая, — тут уж точно лучше закэшировать
Еще можно ссылки на клипы не просто перечислением var clip_1 = ... создавайть, а, например, в массив загонять для удобства.
Иными словами, чем больше операций происходит для доступа к камому-либо полю, тем хуже.

Код AS1/AS2:
eval("_root.cam"+i+".e"+c).onPress = ... // 4 операции
_root.cam3.e6.onPress = ... // 2 операции
cam_1.onPress = ... // без операций, если не считать количество операций при кэшировании