I don't think it's mostly good or mostly bad in the abstract.
DRYing code repeated for the same reason is mostly good.
DRYing code coincidentally repeated for different reasons will sow code churn or inadvertent behavior shifts.
DRYing code repeated for the same reason is mostly good.
DRYing code coincidentally repeated for different reasons will sow code churn or inadvertent behavior shifts.