The Preview pane of the Web Publishing dialog in Visual Studio 2012 works quite nicely when you're the only developer working on the codebase (see example below):

However, it seems to fall down when multiple developers use it. It appears to use file timestamps as the means of comparsion, so even if you've gotten latest from TFS, your timestamp is different than the file the other guy published on the server, so it includes a lot of phantom changes in the list (once you drill in, the two panes of the diff are the same).
Has anyone come up with a workaround for this scenario?
So far, no. I've noticed the same problem with Team Foundation Server and publishing via file system. The problem stems from the XML files TFS is using to keep track of what was last published for a given profile. These files exist under the Project\Properties\Publish Profiles folder. The files are automatically added to the project and are next to impossible to keep out of TFS. When a team member notices that what they publish doesn't necessarily match up with what is on their machine, they delete and recreate a new publishing profile. Completely not a scalable solution, but if you google visual studio publish not working, you'll come across loads of people with the same problem.