It's not defunct, the process is still alive, zombies are defunct. I believe D was chosen for the state because the function that usually caused it was down(). Now with the finer granularity locking in most kernels I don't think that's the cause, but the status type remains.
A process gets into a D state because it asked the kernel to do something on it's behalf, usually I/O, and it hasn't returned yet. You can't kill the process because the kernel is in the middle of something and there might be other locks held.