Ok, let me try to show the invoke-chain of it.
sync()->VMXML.undefine()->virsh.remove_domain()->virsh.destroy()

Well, it is really not readable for some historical reason :(.