Maybe vimdiff is an alias which is not being used, or a script not on the path, or something like that?
Try vim -d CURRENT1 CURRENT2 to launch Vim in diff mode a different way.
This is not the problem, I am using vimdiff 100 times a day and I tried vim with -d, -D, -T "ansi", -V. Using "xterm -e vimdiff ..." works, but opens a new xterm, which I think is not optimal. (also see the links I provided)
Maybe vim does not recognize that it already has a terminal for output, but I really have no clue!
All the tools I see which actually worked in those links you provided were GUI apps (including GVIM) or a brand new invocation of a terminal. Unison doesn't need a GUI app for its diff program, does it?
:help -f says that it only affects the GUI Vim, so the problem isn't forking. I wonder if Vim is having trouble detecting the right terminal? It looks like you tried -T "ansi", do you know this to be correct?
I almost never use Vim in a terminal, I almost always use gvim even on Linux, so I'm not going to be much further help here, sad to say.