La idea que plantea 
Alexis88 es buena, pero hay un problema... 
arguments.callee está en desuso. 
Lo más "recomendable" en estos casos sería declararla afuera y después referenciarla, o simplemente darle un nombre al listener del evento (que se puede):    
Código Javascript
:
Ver originalvar input = document.querySelector("#foo");
 
input.addEventListener("focus", function k(event){
    alert("Solo verás este mensaje una vez.");
    this.removeEventListener("focus", k);
}, false);