Short-circuit skips exclude_none/exclude_defaults filtering for nested BaseModel fields
The new short-circuit path (line 244) returns obj_dict directly when exclude_none and exclude_defaults are both falsy. However, model_dump(mode="json") only filters top-level fields according to these parameters — it does NOT recursively strip None values or default values from nested dicts/lists. The original recursive jsonable_encoder did perform that deep cleanup. This means that for a model with nested models, exclude_none=True or exclude_defaults=True will now skip the short-circuit (falling through to the old recursive path), but the old path still calls model_dump with those parameters, which only filters top-level. The nested cleanup is lost.