A) No le estás pasando el evento a la función:
Cita: x.addEventListener('click', function(){posicion_puntero('e')},false);
Primero porque en todo caso sería e, no "e"; y después porque primero deberías pasárselo como argumento a la función contenedora. Como no lo encuentra en arguments, va buscando hacia arriba para ver si encuentra e, y como no lo encuentra da error. De todas maneras, mejor usar el handler, para poder usar removeEventListener después:
Cita: x.addEventListener('click', posicion_puntero, false);
B) removeEventListener/detachEvent necesitan como argumento
el mismo handler que se usó al añadir el evento, y puesto que:
Cita: var a = function(){ return 'a'; };
var b = function(){ return 'a'; };
a == b; // false
tu solución de encapsular las funciones no es viable, a no ser que lo almacenes en una variable, pero no le veo el sentido.
C)
¿A TI NO TE HAN DICHO NUNCA QUE ESCRIBIR EN MAYÚSCULAS EN INTERNET ES COMO SI GRITARAS?
Saludos.