I don't think that BitBit is using DMs for anything. Those BitBit posts you see (like ".... just tipped ___ 21 sats")... I believe they are doing those with (possibly expensive) API credits from X. So it's actually costing them money to make those posts... they do NOT seem to request and "write" access to the user's X account, only "read" access. Regarding the actual zapping/funds movement, I believe it is all happening within Spark -- that's how they are able to support refunds. (Because refunding Lightning payments is pretty difficult....)....... Like Spark as a whole, I don't think it's really accurate to describe this as "non-custodial", but also, who cares, the main thing is: Can they bring zapping to X? If they can, I don't care how they get there, I am all for it!!