In the context of fission it is possible that one would need to send an nsIInputStream from a content child, to the content parent and then later to another content child and finally back to the content parent. If this is a form submit this would be an nsIMIMEInputStream that wraps another nsIInputStream. If the latter stream isn't directly serializable (e.g. it's a string nsIInputStream that is large) we will use a pipe to transmit the data, and because of all the bouncing we'd do this several times!
Using an IPCBlobInputStream we'd only pass around an ID that identifies the stream until it's finally used. This would cut down on copying, which is good.