You can make an argument for infinite ammo, but I really don’t like it. It’s one of one those small things that add up to making the game more arcady and less immersive.
Hard disapprove.
If 'immersive' is the argument for it, I could argue that we should have hunger and thirst bars. And we should have to find places for our characters to defecate when adventuring. And we should have to buy soap and bathe, or suffer penalties to CHA after a few days. And there should be a mini-game for sharpening our weapons after a fight, or adjusting the straps on our plate armor. And bones should be breakable and take in-game months to heal.
And the main quest to get rid of the tadpole should have a timer ticking down every second after you start playing; take too long and you just game over. This includes when doing inventory management, cinematics, and talking to people, because time passes regardless of what you're doing.
Sometimes you have to suspend realism/immersion for player convenience and a more streamlined user experience.
I know I did not play Amazons in Diablo 2 because I got insanely bored of spending my money on arrows while my friends were buying magic weapons and armor and rings. Or going back to town every time I ran out.