Текстовый дифф составляется по строкам и предназначен для того, чтобы можно было слить два диффа вместе (конфликты в VCS). Бинарный дифф просто передает различия и не предназначен для слияния.
«Учет многобайтовых кодировок» — не понял, что вы имеете в виду? Он нужен для правильного определения переноса строк в текстовых диффах, ну и для «ignore whitespace» — вроде всё.