Regarding the one-time fee and subscription, 100% agree. I delayed adding account sync because of the monthly / yearly costs. And also, because with the model of recuring rules looking into the future, I tend to use the app on a daily basis to correct things (payment is scheduled on 16th but is cleared on 17th so I need to update it).
When I add bank account sync, I'll have to think how to charge it. I still don't want to have a subscription for it, so need to think about it.
Finally, I don't do client-side encryption. There is encryption in transit (https / tls) and at rest.
I can't open any database without the user's password, so even if someone were able to exfiltrate the user databases, they still would need to know the encryption key used to read the data.
One thing I would think about: the one-time fee is refreshing (subscription fatigue is real), but you might want to consider what happens when bank sync lands. That has ongoing costs per connected account. Could be worth structuring it as "core app = one-time, bank sync = small monthly add-on" so your economics still work without forcing everyone into a subscription they did not ask for.
Curious about the encryption model you mentioned - is all the financial data encrypted client-side? That could actually be a meaningful differentiator vs. Actual Budget, which stores data on your own server but does not do client-side encryption by default.