I think two valid solutions would be this:
In XenForo_DataWriter_DiscussionMessage_Post::_messagePostSave()
	
	
	
		Code:
	
	
		if ($this->isUpdate() && $this->isChanged('thread_id'))
                {
                    $db = $this->_db;
                    $db->update('xf_user_alert', array(
                            'action' => 'move'
                    ),  "content_type = 'post' and content_id = " . $db->quote($this->getExisting('post_id')));
                }
	 
 
Or change line 76 of the same file from this:
	
	
	
		Code:
	
	
		if ($this->isUpdate() && $this->get('message_state') == 'deleted' && $this->getExisting('message_state') == 'visible')
	 
 
to this:
	
	
	
		Code:
	
	
		if ($this->isUpdate() && (($this->get('message_state') == 'deleted' && $this->getExisting('message_state') == 'visible') || $this->isChanged('thread_id')))
	 
 
The first solution requires a new template for the alert method. The second one just removes the alerts.