There are tools that do this, though of course they analyze the source, not the binaries like what's done here (binaries can legitimately contain lots of duplicate code, introduced by the compiler for optimization).
I bet an analysis like that will find a ton of code that shouldn't be abstracted. Maybe at some compilation level more optimization can be done. But perfectly optimized code is likely much less maintainable.
Nevertheless, it would be very revealing and educational.
I imagine it would be like code coverage. You don't always want to unit test every single branch and 100% doesn't mean you're bug-free, but it's still useful as a metric.