My take on DRY is that it is just a pattern like any other with upsides and downsides. It has appropriate applications and situations in which it really doesn't make sense.
One example, when DRY is not appropriate, is when you have different contexts and try to enforce a DRY relationship between them. Later on, you decide that in one context, your function should behave slightly different, so you change it. But to your surprise, you change other contexts as well, which you really didn't want to. DRY is good, but use it reasonably!