I figured the output of diff -r is already plenty structured enough for me to "get clever" with it. Here's the gist of it.
diff -r proj1/src proj2/src | grep 'diff -r' | cut -d ' ' -f 3,4 | xargs -n 2 sift
where sift is my little command-line char-based diff util which runs circles around diff's diff output.
and using diff (GNU diffutils) 2.8.1
I am open to more elegant solutions as well!
Edit: Thanks @janos, the -q option makes it pretty optimal!
One last thing to mention is that this can be made quite powerful by piping into the opendiff program on a Mac's command line (specifying the corresponding file in the desired dir as target, which of course is already inside a Git repo, right?) to do the manual merging nice and quickly.
In fact setting up opendiff to be used by Git when it needs a human merge is probably the way to go.
It's just that I still have not encountered very many merge conflict situations across the same code repo, it is mainly when forking repos (and having separate repos for divergent projects that contain shared code) that I need to do this kind of merge to manually bring my "primary" projects up to date with the changes made in the trenches.
-qoption fordiff?