If you attempt to diff several files at once, what ends up happening is that the diff tool is opened separately for //each// of those files. This is... less than ideal in the case of a changeset that's ridiculously large, to put it mildly. In a particularly extreme case, one might end up with half of one's dock covered in icons for the diff application of choice.
Many of the applications that are selectable for diffs can handle folders rather than files as input-- I know for a fact that FileMerge, DiffMerge, KDiff3 and TextWrangler all can. It seems like a better approach would be to create two temp folders, one for each revision, and then diff the two folders, instead of diffing the individual files one-by-one.