Realmente no es que Flash se haga un lío, es que eso es lo que se supone que hace _root. Es una de las razones por las que, en la misma ayuda de Flash, se dan alternativas al uso de _root:
Ayuda de Flash escribió:
Especifica o devuelve una referencia a la línea de tiempo del clip de película raíz. Si un clip de película tiene varios niveles, la línea de tiempo del clip de película raíz está en el nivel que contiene el script que se está ejecutando. Por ejemplo, si un script del nivel 1 evalúa _root, se devuelve _level1.
Especificar _root equivale a utilizar la notación con barras (/) desfasada para especificar una ruta absoluta en el nivel actual.
Nota: Si un clip de película que contiene _root se carga en otro clip de película, _root hace referencia a la línea de tiempo del clip de película que se carga y no a la línea de tiempo que contiene _root. Si desea asegurarse de que _root haga referencia a la línea de tiempo del clip de película cargado incluso cuando se cargue en otro clip de película, utilice MovieClip._lockroot.