Thanks for the pointer. I reported it there ( https://github.com/scop/bash-completion/issues/52 ).
After further investigation, the problem seems to be that when IFS is set to '*', case *) doesn't get executed. Is this the intended behavior? For example: IFS='*'; case "foo" in *) echo "got here";; esac doesn't print "got here".