en mi opinión, la manera más adecuada de hacerlo es almacenar la función anónima en una variable
Cita: var input = document.querySelector("#foo"), fnc = null;
input.addEventListener("focus", fnc = function(event){
alert("Solo verás este mensaje una vez.");
this.removeEventListener("focus", fnc);
}, false);