Eu tropecei nessa questão enquanto procurava por algo completamente não relacionado, mas pensei em adicionar a seguinte distinção importante, que não foi mencionada até agora: o sudoedit não roda o seu editor como root.
$ sudo vim /etc/farts.conf
Simplesmente executará o vim como root, permitindo que ele leia o arquivo. A desvantagem é que o editor agora também é executado como root e pode fazer qualquer coisa. Se você apenas quisesse permitir que um usuário editasse um arquivo de configuração e nada mais, muito ruim, você apenas deu a eles root em todo o sistema. Nada me impede de gerar um shell do vim com :sh
ou :!command
e, como eles são subprocessos, eles também serão executados como raiz.
Por outro lado:
$ sudoedit /etc/farts.conf
funcionará de maneira diferente. Ele criará uma cópia com um nome exclusivo em / tmp com permissões bloqueadas somente para seu usuário e, em seguida, gerará seu editor normalmente, sem privilégios de administrador, nessa cópia.
Depois de sair do editor, ele comparará o arquivo temporário e o arquivo original e substituirá com segurança o original pela sua edição, caso tenha mudado.
Neste cenário, torna-se possível permitir que um usuário edite um arquivo de sistema, mas não permita que executem binários aleatórios como root ou cutucam todo o sistema de arquivos.
Essa é principalmente a distinção real, o resto que foi mencionado é apenas efeitos colaterais puros.