buenas @refreegrata,
lo que sucede en 
metodo_2 dentro de 
espacio es que se crea un closure. esto sucede por tres razones principales: porque hay una referencia a un objeto, dicha referencia ocurre dentro de un scope, y el elemento que hace referencia al objeto es devuelto o asignado a un contexto externo. javascript tiene un mecanismo de resolución de conflicto donde va buscando los identificadores (tokens) por un orden en el scope. en tu caso particular, javascript primero busca si 
metodo_1 esta definido en el mismo scope (dentro de la función 
metodo_2) y luego continua ascendiendo (dentro de la función 
espacio). como esta definido en 
espacio, entonces hace referencia a este. notese que las referencias se basan de acuerdo al contexto en que se definen y no en el contexto en que se invoca. 
algunos artículos que te pueden ayudar, 
http://robertnyman.com/2008/10/09/ex...-and-closures/, 
http://jibbering.com/faq/notes/closures/. 
nota: no he leido todos los mensajes por lo que no se muy bien que se ha discutido.