In my humble opinion this is proper behavior. When you have locally changed file (and you didn't stage any changes for it before) it should compare against latest commit not version in cache/index, because it does "not exists".

The behavior that you proposed can be miss leading for end user.