1) Почему не умеет. Умеет. Хоть посимвольно коммить (другое дело, что радости это не принесёт)
2) Гит должен быть stupid content tracker. Иначе огребёшь проблемы с интероперабельностью, т.к. надо будет изворачиваться и работать с гитом десятилетней давности, который ничего про новые фичи языка не знает
3) Это может быть полезной штукой, но это реально большая и сложная система, которую надо строить поверх гита. Т.к. там чудовищно много проблем с тем коого уведомлять, когда уведомлять, как это нужно интегрировать в процессы. Out of scope for gitб короче