This warning comes from parse_expr.c transformJsonValueExpr() and is triggered for example by the following test case:
SELECT JSON_OBJECT('foo': NULL::json FORMAT JSON); WARNING: FORMAT JSON has no effect for json and jsonb types
But I don't see anything in the SQL standard that would require this warning. It seems pretty clear that FORMAT JSON in this case is implicit and otherwise without effect.
Also, we don't have that warning in the output case (RETURNING json FORMAT JSON).
Anyone remember why this is here? Should we remove it?
+1 for removing, on the basis that it is not suprising, and would pollute logs for most configurations.