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 a
channel_id(derived from the funding transaction).
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?