Files beginning with tildes ('~'<filename>) are not tab-completed to reflect the needed escape.
I can not reproduce this bug under zsh 4.3.10
ls <tab> completes with \~foo
Which zsh options have you?
Try to add/remove these options with setopt and see if your bug happens again.