When calling a receive pipeline in an orchestration's Expression shape, the receive pipeline must be a Disassembler and therefore implement the IDisassemblerComponent interface.
Your custom pipeline won't work if isn't a disassembler - period. Although the means of calling a pipeline from within an orchestration suggests that the pipeline must be a Disassembler, since you need to call the pipeline's GetNext method, it isn't clearly stated anywhere that I looked.
I suppose it's a logical design; however, the approach forces developers to take an all or nothing approach in that you must either write your own disassembler or contain the existing disassembler within your pipeline. It would be useful to be able to call other types of pipelines from inside an orchestration.