Hi, Greg. Any of the file/folder comparison functionality is going to come from the underlying JetBrains IDE based on the provided files. So if the provided files are malformed or inconsistent, any comparison is going to be difficult. This can be the case, for example, with some metadata XML files that aren't returned by the Salesforce metadata retrieval APIs with consistent ordering.
Otherwise IC2 just tells the IDE to launch its diff tool for the project's version of the file and the retrieved version of the file. Now to be totally candid, while I love JetBrains' IDEs, I don't find their file/folder diff tools to be all that great. As a result, I immediately configure all JetBrains IDEs for an external diff tool, specifically
Beyond Compare. I find that tool to have many more options for isolating the true differences in text files. The one thing that it notably lacks, even vs the JetBrains diff tool, is a true grammar-aware alignment, so changes that span multiple lines, e.g., something as simple as changing braces from end-of-line to next line (or vice versa), can result in noisy diffs. Otherwise, though, I find these types of dedicated diff tools to provide a much better signal-to-noise ratio.
There are many other options than Beyond Compare including Araxis Merge, KDiff3, Kompare, WinDiff, etc.
Now...having said all that, I don't know that using an external diff tool will help much if the issue is that the files being compared are "dense" and composition-based. In that specific case, you might actually have to extract the relevant portion of the respective files into separate editors -- I use scratch editors for this purpose -- use the language-specific formatter on them, and diff those portions explicitly. Yes, it can be a pain, but there are certainly specific situations that require such an approach.
Certainly if you have specific thoughts on how IC2 can help to automate something like this, feel free to log an enhancement request with a description of such a process in the public issue tracker and I'll be happy to take a look. The whole goal of IC2 is to help simplify Salesforce dev, so if this is a frequent and tedious issue for you, let's brainstorm a bit on specific case and see if we can come up with a solution that might work for everyone.
Regards,
Scott Wells