quando sei nell'azione del clip (all'interno) devi riferirti a lui con this

codice:
var statusOff = function(arr, n){
	for(i=0; i<arr.length; i++){
		path = _root[arr[i]];
		if(i!=n){
			path.enabled = true;
			path.gotoAndStop(1);
		} else {
			path.enabled = false;
			path.gotoAndStop(2);
		}
	}
}
var nomi = new Array("a", "b", "c", "d", "e");
for(n=0;n<nomi.length;n++){
	path = _root[nomi[n]];
	path.n = n;
	path.onRollOver = function(){
		this.gotoAndStop(2);
		trace(this);
	}
	path.onRollOut = function(){
		this.gotoAndStop(1);
	}
	path.onRelease = function(){
		_root.statusOff(_root.nomi, this.n);
	}
}
quando entri nelle azioni č come se uscissi da ciclo, perciō riferendoti a path ti riferisci sempre a _root[nomi[nomi.length-1]] ossia all'ultimo clip della lista nell'array, per riferirti invece all'interno del ciclo al clip che sta eseguendo in quel momento l'azione, basta un "trucchetto" ossia quel path.n = n che dā il numero di riferimento "n" al clip stesso e puō essere richiamato dall'interno con this.n

per quanto riguarda la possibilitā di dare comandi diversi, potresti racchiudere i comandi in funzioni separate e poi richiamarli allo stesso modo nell'onRelease del ciclo, ad esempio
codice:
var function_a = function(){
// azioni
}
var function_b = function(){
// azioni
}
// ecc....
var statusOff = function(arr, n){
	for(i=0; i<arr.length; i++){
		path = _root[arr[i]];
		if(i!=n){
			path.enabled = true;
			path.gotoAndStop(1);
		} else {
			path.enabled = false;
			path.gotoAndStop(2);
		}
	}
}
var nomi = new Array("a", "b", "c", "d", "e");
for(n=0;n<nomi.length;n++){
	path = _root[nomi[n]];
	path.n = n;
	path.onRollOver = function(){
		this.gotoAndStop(2);
		trace(this);
	}
	path.onRollOut = function(){
		this.gotoAndStop(1);
	}
	path.onRelease = function(){
		_root.statusOff(_root.nomi, this.n);
		_root["function_"+this._name]();
	}
}
ps, il codice vā solo ed esclusivamente su timeline