I found OLDPWD's value doesn't influence 'cd -' if changed before run,
like what bash will do:
[hpt@hpt]~% echo $OLDPWD
/home/hpt
[hpt@hpt]~% vared OLDPWD
/tmp
[hpt@hpt]~% echo $OLDPWD
/tmp
[hpt@hpt]~% cd -
~
[hpt@hpt]~% pwd
/home/hpt

This patch will let zsh check OLDPWD before run 'cd -', so let OLDPWD
influence it:
[hpt@hpt]~% echo $OLDPWD
/home/hpt
[hpt@hpt]~% vared OLDPWD
/tmp
[hpt@hpt]~% cd -
/tmp
[hpt@hpt]/tmp% pwd
/tmp
[hpt@hpt]/tmp%