bash-3.1$ mkdir -p a/b/c/d
bash-3.1$ ln -s a/b/c carrot
bash-3.1$ cd c<tab>
It's due to the GNU readline library. Readline has several variables that can be set to influence its behavior, including tab completion of symlinks to directory names. If you find double tapping tab annoying, the fix is trivial. Simply add these two lines to your inputrc:
set mark-directories On
set mark-symlinked-directories On
inputrc will be /etc/inputrc or your ~/.inputrc, either will work.