Не магия. Просто removeEventListener принимает ссылку на твою коллбек функцию вторым аргументом для удаления. Соответственно тебе нужно указать в регистрации ивента явную коллбек функцию и потом удалять её по её же ссылки.
А, понял, т.е. ему нужно не функцию передавать в колбек, а ссылку?