Because money is a finite resource. The budget has X Rupees and and Y topics to split them under, and any rupee spend on the military is one that isn't spent on toilets or schools or childcare.
Yes, but this is an allocation problem. Is it feasible for India to allocate 100% of its budget to toilets when it has border conflicts with its neighbors and terrorism around?
India has nukes, so they're undoubtedly overspending on defense.
Russia has nukes. Does it look like they are winning? Nukes are for last resort. No one is going to use nukes in limited conflicts.