Flink uses the OptimizerPlanEnvironment which replaces stdout/stderr during job graph creation. This was intended only for previewing the plan, but other parts of Flink, e.g. the Rest API have started to use this code as well.
It may be acceptable to suppress output during plan preview, but we should not suppress the output during execution, e.g. via the REST API.