Remover um diretório ou um arquivo tem apenas a ver com permissões no diretório que contém o arquivo / dir a ser removido. Permissões no arquivo / dir em si são irrelevantes. Daí porque você pode remover directory usando rmdir , mesmo que seja de root : você não o mostrou na sua saída, mas você claramente leu, escreveu e executou permissões no diretório que contém directory .
Eu escrevi mais em outro lugar em o que exatamente cada permissão individual em um diretório permite que você realize .
Por que você não pode mover directory para target_directory , não tenho certeza. Não consigo reproduzir isso na minha caixa. Há vários motivos que podem estar causando isso, variando de atributos estendidos sendo definidos em directory , até a possibilidade de que target_directory poderia ser um ponto de montagem para um sistema de arquivos separado daquele que contém directory . As permissões sozinhas não são o motivo, no entanto.
(P.S .: Da próxima vez escolha nomes de exemplo melhores; usando os nomes "diretório" e "arquivo", torne realmente irritante tentar descrever o que está acontecendo.)