Quick answer: Bad programs overwrite unallocated
Btw, don't know about AOS, but AROS (with it's lame old AOS-like mem allocation routines) at the moment when killing a task relies on some (the first bytes may end up as a MemChunk which chains together free memory chunks, but that doesn't hurt) of the Task struct still being "there" (untrashed) after it was freed (if it's part of the tc_MemEntry) hoping the Forbid() protection scares the rest of the OS/apps enough, so they don't get hurt.