Ok, I think #[3] was simplifying the architecture, yes.
The LN node receiving the payment doesn't have to implement the zapper function by itself. It could ask another zapper to publish and sign the zap event, I guess.
I suppose nostr.band is using the zapper pubkey to identify a zapper, whatever the LN node receiving the Lightning transaction was.
Is it like that, #[3] ?