Disable extra perimeters if fill density is zero as they wouldn't be supported by anything and would just float inside the object. infill_only_where_needed should be the method of choice for hollow objects
Get rid of most calls to $Slic3r::flow