Why does Bash escape colon when autocompleting a filename?

The colon is one of the characters in COMP_WORDBREAKS:

COMP_WORDBREAKS

The set of characters that the Readline library treats as word separators when performing word completion. If COMP_WORDBREAKS is unset, it loses its special properties, even if it is subsequently reset.

As explained in Completion Items Starting With Colon Character:

The colon breaks words for the completion system (look at the description of the COMP_WORDBREAKS shell variable), so when you type

progname :[TAB]

the completion system gets an empty word to complete. If all of the possible completions have `:' as the longest common prefix, then the completion system will insert the colon into the line.

Removing the colon from the COMP_WORDBREAKS environment variable will solve the problem.

See for example Bash completion for Maven escapes colon.