Could you please check below ideas, might be you will find it interesting and useful for implementation.
1. Side bar for list of changed files.
We can navigate between files changed in scope of a commit either with Next Difference (F7), or with Go to Changed File (CMD+O). It will be nice to have an ability to see list of changed files as a side bar, plus additional information (file was added, modified, deleted, etc.)
2. Straight history of commits in Version Control Log for git.
If we can see all files changed within a certain merge commit there's no reason to see previous commits made within merged feature branch. As an example, at the moment SourceTree application for Mac OS (Win version has not this option) can show a certain branch with First Parent Only option. In the case - history looks clear and straight no matter what merge/rebase strategy is in use for repository.
3. Semantic Diff / Merge.
Semantic Diff / Merge is a great option missing in IntelliJ IDEA. If we move a function within a java class to a new place Show Diff will treat it as deleted at one place plus added to another. Though it can be detected and either shown as moved, or ignored like Ignore Whitespaces. Even more, as long as all files changed within a certain commit are known - a source code refactoring can be detected between files.