In his blogpost, Alex Bosworth describes that “emptying of the channel allows them to receive more payment” (https://blog.lightning.engineering/posts/2019/03/20/loop.html). But how can I allow more inbound payments by withdrawing funds from an active channel? From my understanding, the only way to get inbound capacity is a connected node that provides funds on its side of the channel?
As mentioned in other questions here there is a difference between capacity and balance.
Currently you cannot change the capacity of a channel. So let us assume you have opened a channel with a capacity of 0.1 BTC
This means you can now send up to 0.1BTC but you cannot receive any BTC on that channel.
One you used this channel to pay an invoice for example with 0.04 BTC the capacity of the channel stays the same but now you can receive 0.04 BTC on that channel which we usually call inbound capacity and you can only send 0.06 BTC (not in one payment though since the max payment limit is currently a little above 0.04 BTC) the 0.06 BTC is caked your outbound capacity. Inbound and outbound capacity together reflect the channel balance.
What loop does is that it gives you an invoice (something to pay for) and reimburses you onchain. In this way you have moved some of your outbound capacity to become inbound capacity without the necessity to spend money by actually buying something. (though you technically pay a small fee for the service)
Hope that makes it clear (: