Do manual do git:
When more than one pattern matches the path, a later line overrides an earlier line. This overriding is done per attribute.
Como resultado, a linha * text
está substituindo as linhas anteriores.
A ordem correta para .gitattributes
é esta:
* text eol=lf
*.exe binary
*.pdf binary