I might not be understanding quite what has to happen here - wouldn't any listenerMap listeners remain on the old rootElement here?  (This might tie in to the test comment above!).  It looks like listeners are being removed if the root is cleared, but not if moved?