Думаю, ответ немного банален — чтобы можно было выбирать, какие файлы включать в коммит.
Из практики — чаще всего случается git commit -am "...", уже до автоматизма дошло. Т.е. смотрю статус, если есть новые — добавляю, и затем коммит с флагом -a. Но это у меня. Т.к. в моем случае git по большей мере нужен для коммандной работы — сам контроль версий не особо использую. Если нужно балансировать между версиями — используются бранчи.
Тем не менее, если действительно относиться к каждому коммиту, как к стабильной версии для продакшна, то может понадобиться именно такой подход. В этом случае как раз таки staging area и играет роль черновика, из которого можно включить те или иные файлы.
Опять таки, из практики — порой удобно бывает закоммитить определенный файл в случае с хотфиксами.