The diffs don't have to be line-oriented if you are using a diffing tool that isn't based on line changes.
Git itself just stores snapshots of your files, then you can bring your own diffing tool that works in any way you'd like, it's not limited to line based diffing.