So, if a consumer wants to send bitcoins to a merchant, either the consumer needs to lock up bitcoins in a payment channel which can only send bitcoins to that given merchant, or the consumer needs to lock up bitcoins in a payment channel to an intermediate gateway, and the merchant needs to lock up the amount of bitcoins it wants to receive in a payment channel between it and the gateway.
So if 1000 consumers want to send 0.001 BTC to merchant A, via a gateway, then 1 BTC needs to be locked in a payment channel between the gateway and merchant before this can happen. This means that LN needs 2 BTC to send 1 BTC when using a single gateway.
So, first of all, the gateway needs to know how many bitcoins the merchant will receive in the future, and secondly the gateway needs to borrow this amount of bitcoins in the market and lock it up in a payment channel between it and the merchant. In the end I think the capital cost of this will be too high.
I think it makes more sense to use a decentralized, credit-based system such as GNU Taler (think “decentralized BTC debit card”). Merchants are then free to choose which gateways (“exchanges” in GNU Taler speak) to trust, and a payment app can work with any Taler gateway, making the system decentralized in the same way as email.