Just spent half an hour trying to figure out why 256 color mode stopped working in Vim.
I'm blaming you =P
In all seriousness actually trying to get 256 colour mode auto detecting and working reliability across different xterms, tmux/screen, ssh and so on, without some hack that forces the 256 on even when it's not supported seems impossible :/
I added the following to my zshrc, which seems to have helped. Why don't these terminals report 256 color mode by default?
if [ "$COLORTERM" == "yes" -a "$TERM" == "xterm" ]; then
export TERM=xterm-256color
fi