Is there a way to compare 2 shelves in TFS without having to resort to unshelving both in separate workspaces and diffing the files?
I don't have access to TFS currently, but if the file in the shelveset has a unique idenitifer (like say $/x/y/z/a.b.c;SH='ShelvesetName') you should be able to issue a command line tf dff command to compare each one.
Or
If you unshelve one and then use the command line TFS power tools to compare the other one with the review command
tfpt review /shelveset:shelvesetName;userName
The power tools are version specific and you can download the following versions: