The use of DND and status is dependent upon what you want to do relative to call handling. The best example I can give has to do with ring groups. Keep in mind the following:
The status function is pertinent to an extension for direct calls placed to it. So, for example if an extension is set to away and has the rule set to forward to cell, this setting will be ignored by a call coming from a ring group. The call will continue down the path as set-up by the ring group. Otherwise, all calls from a ring group would be sent down the forward path which defeats the purpose of the ring group. However, calls sent to the extension directly from something other than a ring group or a queue, will obey the status and follow the path to forward. This can be important if an extension owner who is part of a ring group goes to lunch and reflects an away status as a result. If this should occur, then any ring group call that makes it to that extension will simply ring for the allotted time before moving on.
DND is used to reflect the status of the phone whereas the other is more related to the user of the phone. When DND is set, it essentially sends an "I am busy" or "I am temporarily busy" message back to the system. So, in the case of a ring group, the call will by-pass (not ring) the extension and move to the next extension or rule. It prevent the extension from ringing needlessly for the allotted time which then speeds up the process by which the caller may get an answer.
People in a ring group may want to do both, set their status as well as DND. Both fundamentally control whether or not the phone will ring and how the call will subsequently be directed, but do so based upon what type of originating call is being handled.