DiffBind starts with peaks (per sample), and then counts the reads that fall within those peaks. Differential expression of the counts of the reads is calculated using DESeq2 / edgeR.
What is the reason for the move from peaks to reads? What benefit does it yield that would not be possible otherwise?