The Channel Session Protocol is currently recommended, not required, in order to support uni-directional, centralised services (i.e., private endpoints sending parcels to a public endpoint but never getting any data back).
In hindsight, that was a mistake, and we should make it required before GA. Though we can't act on this until relaycorp/relayverse#27 is resolved.
Amongst other things, this means that the so-called SessionlessEnvelopedData in the core libraries will go.