Por fim, o adduser do Debian (e portanto do Ubuntu) chama gpasswd :
my $gpasswd = &which('gpasswd');
&systemcall($gpasswd, '-a',$existing_user,$existing_group);
O adduser do Debian foi escrito com o propósito de ser uma interface conveniente para uma variedade de utilitários (ele usa, em uma etapa ou outra, useradd , gpasswd , usermod , passwd , chfn e mais alguns comandos). adduser e co. são um pouco específicos por distro, sendo scripts de frontend. O que você vê é de Debian , enquanto Slackware e FreeBSD (pelo menos) tem o seu próprio.
Eu esperaria uma interface consistente com os comandos de nível inferior como usermod e gpasswd , já que eles parecem ter origem em um conjunto comum de ferramentas de acordo com as origens do pacote em Debian (e assim Ubuntu , Arch Linux , Fedora e CentOS ) e Slackware .
Por outro lado, Debian recomenda que os administradores de sistema usam adduser , etc.