Acontece que é uma opção de configuração no Cygwin que configura o Bash para não incluir a extensão .exe
de um nome de arquivo ao concluir o nome de um comando.
Ativar a opção completion_strip_exe
(específica da porta do Bash do Cygwin) faz o que eu quero:
shopt -s completion_strip_exe
Este recurso não está documentado de forma muito óbvia: ele recebe uma menção superficial na seção Expansão do nome do caminho da página do manual do Cygwin para Bash (ele não está incluído no código-fonte upstream, portanto não está documentado a man page oficial ou a documentação do Bash . Eu me deparei com isso enquanto lia /usr/share/doc/Cygwin/bash.README
(uns 4 meses depois de fazer essa pergunta):
7b. using 'shopt -s completion_strip_exe' makes completion strip .exe suffixes.
Parece que esta opção está disponível no Cygwin Bash há mais de 5 anos:
----- version 4.1.9-1 -- 2010-12-29 -----
Add EXECIGNORE and completion_strip_exe patches from Dan Colascione.
Mais pesquisas mostram que o patch desse recurso foi enviado por Dan Colascione em novembro 2010 com a descrição a seguir :
completion_strip_exe
is a new shell option. When enabled, bash tries to use the short name of a program instead of its longer ".-exe"-suffixed one. With this on, pin completes to "ping".
Muito obrigado a Dan Colascione (eu acabei de enviar-lhe um e-mail pessoal para agradecer pessoalmente a ele) por esse recurso e os mantenedores do Bash por fornecerem uma ótima concha.