hasEventListener принимает в качестве параметра только название события. т.е. нет стопроцентной гарантии, что подписчик существует, даже если hasEventListener вернул true
пример:

Код AS3:
someDispatcher.addEventListener("someEvent", someHandler);
//........................
//тут нам, например, хочется удалить обработчик otherHandler на событие "someEvent"
if (someDispatcher.hasEventListener("someEvent"))
{
someDispatcher.removeEventListener("someEvent", otherHandler );
}