I can see both sides of this. I don’t usually update an app unless I’m having problems that are fixed in a later update.
Ongoing development of an app can be for various things. For things like bugfixes to existing code, I don’t think we should necessarily pay for that. For brand new features that weren’t promised before and didn’t exist before there could be a case for paying for that.
Bug free is not possible, but there are certainly degrees of bugs. If I pay for software that is supposed to balance my checkbook and it has errors in the math, I would expect those errors to be fixed or my money returned. If one of the buttons is 2px out of alignment, it’s not a big deal. The software should at least functionally do what you paid for it to do, without any additional expense. IMHO.