Well, what did you expect? You're relying on undocumented features. Relevant sections from the manual:
Definition of 'name': | name A word consisting only of alphanumeric characters and underscores, and beginning with an alphabetic character or an | underscore. Also referred to as an identifier. Definition of shell functions: | Shell Function Definitions | A shell function is an object that is called like a simple command and executes a compound command with a new set of posi‐ | tional parameters. Shell functions are declared as follows: | | name () compound-command [redirection] | function name [()] compound-command [redirection] | This defines a function named name. The reserved word function is optional. If the function reserved word is sup‐ | plied, the parentheses are optional. The body of the function is the compound command compound-command (see Com‐ | pound Commands above). That command is usually a list of commands between { and }, but may be any command listed | under Compound Commands above. compound-command is executed whenever name is specified as the name of a simple com‐ | mand. When in posix mode, name may not be the name of one of the POSIX special builtins. Any redirections (see RE‐ | DIRECTION below) specified when a function is defined are performed when the function is executed. The exit status | of a function definition is zero unless a syntax error occurs or a readonly function with the same name already | exists. When executed, the exit status of a function is the exit status of the last command executed in the body. | (See FUNCTIONS below.) It's common knowledge that if you rely on undocumented stuff, your code will eventually break, like it did now. It's not a regression though, nowhere in the manual you'll find that colons are allowed in function names. So, fix your scripts, perhaps?