I don't think that's true. Some elements return "error" statuses in some very specific case, while at the same time consuming the input. That's the case for instance with qtdemux, which returns GST_FLOW_EOS when the last part of a file is pushed, while it still demuxes all the sample it could from it.
There is no point returning the error to the client. It doesn't expect it, and doesn't handle it anyway. From its point of view, the input has been accepted, and thus consumed by the ProcessInput call, and everything is valid.
This is also not silently swallowing the error as it still prints a warning (which arguably could be raised to error level, but I'm not even sure it's worth it).