<p>Phantom References serve for post-mortem operations.
The Java specification states that a <strong>phantom referenced object</strong> will not be deallocated until the phantom-reference itself is cleaned.</p>

<p>My question is: What purpose does this feature (object not deallocated) serve?</p>

<p>(The only idea i came up with, is to allow native code to do post-mortem cleanup on the object, but it isn't much convincing).</p>

Edit, since I've misunderstand the question first:
Quoted from here
http://www.memorymanagement.org/glossary/p.html
:
The Java specification says that the
  phantom reference is not cleared when
  the reference object is enqueued, but
  actually, there's no way in the
  language to tell whether that has been
  done or not. In some implementations,
  JNI weak global references are weaker
  than phantom references, and provide a
  way to access phantom reachable
  objects.
But I found no other references which would say the same.