Okay, this strikes me as poor design on GStreamer's part, or at least poor documentation.
It's perhaps worth mentioning that pretty much all GStreamer code treats chain errors as at least a reason to stop pushing data and propagate the error. This commit does the opposite of that, which doesn't seem great. I can see an argument for not propagating errors to the PE side, at least, but we should probably leave the break in there.