git diff-index con ruta, ¿funciona?

Estoy en la punta de maestro en mi repository. Sin cambios locales

git diff-index HEAD -- "*" 

correctamente no devuelve nada

Sin embargo,

 git diff-index HEAD -- "*.c" 

me devuelve todos mis files C, como si el repository no los tuviera en absoluto, así:

 :000000 100644 0000000000000000000000000000000000000000 c0054a0b0a441090184a141ee73954a94a2904d5 A block-sha1/sha1.c :000000 100644 0000000000000000000000000000000000000000 c59b0c98fefefc413c8330715fffcc83142d5b2d A builtin/add.c :000000 100644 0000000000000000000000000000000000000000 fc43eed36b55e4966796490b8c0a02fae790229c A builtin/annotate.c :000000 100644 0000000000000000000000000000000000000000 84a8a0b52136c4d1e43ec10f9ef5ed76b7d3c12f A builtin/apply.c 

– Cached no ayuda de ninguna manera.

¿Es un error o una característica?