Use case
When a data part is larger than max_bytes_to_merge_at_max_space_in_pool, lightweight deleted data inside the data part will never be really deleted unless OPTIMIZE FINAL is executed.
Describe the solution you'd like
When selecting parts to merge, use estimated existed rows size
(bytes_on_disk * (rows_count - lwd_rows_count) / rows_count) as the source part size instead of bytes_on_disk.
We can enable this mode only when deleted rows ratio exceeds a certain value (maybe 25%).