Well, the verification guarantees you want out of a public ledger for currency are weaker than that (no money is created out of thin air, the person you're receiving money from actually has enough money to send to you, etc). I'm not sure anyone is philosophically attached to "all balances are visible".
Ok yes, in a single transaction you can prove to everyone else that the net exchange is zero, but how do you prove that you have enough money to send to them? That's global state that depends on all past transactions, even if they're hidden. Include more ZKPs for every transaction ever associated with that address? You have to prove that 1. you received enough to cover it and 2. you haven't spent it already.
Just slapping some ZKP on top of bitcoin is not enough to make it magically private. It needs deeper integration to the model than that.
> I'm not sure anyone is philosophically attached to "all balances are visible".
I don't know either about others, but to me it looks like hiding balances is a regression. Why would you hide your balance, unless you want to lie about it?
I can't think of a reason hiding balances would be better, but I don't have a degree about economy so I'm open to explanation.
Same argument than personal privacy I guess, but here we are talking about currency, not personal political opinions or personal identifyable information.