I'm coming up on 6 years running a node and I don't use it for zaps only because that one time I was in another country and my node went down and I couldn't get zapped.
See you need a NIP60 wallet so that the user’s balance can viewed across clients
But then you need a lightning address so that you’re interoperable with other clients so then you get a npub.cash address
But users don’t want to run their own server for a lightning address or their own mint to hold funds so then you need a bitcoin address for self custody tied to their npub
But then you need the ecash wallet to transfer from a mint to self-custody so you need a Submarine Swap using Boltz.exchange sdk
And that’s how you get self-custody zaps without running a node