No, the process isn't dead. It isn't alive either. It's a zombie (the process has exited, but the parent hasn't waited on it yet). If you read the manual page on kill, you can read that a kill 0 of a zombified process succeeds. (Basically, what kill 0 does is check if 1) the process exists, and 2) is either owned by us, or we are root).
What you see is expected, and documented behaviour.