I'm always nervous with changing the current directory in completions & functions; it mucks up the directory stack, for one thing, and there's definitely been problems with people overloading the cd command. No, they shouldn't do that, but we shouldn't leave landmines like this behind.