Просто установка ссылки на объекты в NULL не всегда достаточно. Если вы создали какие-либо прослушиватели событий, которые ссылаются на этот объект (или если сам этот объект зарегистрирован в качестве прослушивателя), то на него все равно будут ссылаться.
Один из способов избежать подобных проблем со слушателями - использовать слабые ссылки. addEventListener принимает необязательный аргумент, который позволяет вам использовать слабую ссылку. Это позволит объекту собирать мусор, если на него не ссылаются нигде, кроме слушателя событий со слабыми ссылками (или других слабых ссылок).