This question was asked by various individuals on Telegram.
The spec (BOLT 2) allows for multiple channels between the same two peers:
Note that multiple channels can operate in parallel, as all channel messages are identified by either a
temporary_channel_id
(before the funding transaction is created) or achannel_id
(derived from the funding transaction).
The temporary_channel_id
is unique only within a single connection hence implying the possibility of multiple channels per peer/connection.
As far as c-lightning goes, I get the following error when trying to fund a second channel with the same peer:
Peer already CHANNELD_NORMAL
Why doesn't c-lightning follow the spec here?
Update: Core Lightning v0.11.0 (April 2022) introduced support for opening multiple parallel channels to a single peer (channel multiplexing)