> Where's the logics? Both corpses are dead and can't be considered animate.

*Труп* and *покойник* differ in meaning.

*Труп* is "corpse, dead body". This means material remains.

*Покойник* is "late, deceased". This means a person who had passed away.

Consider the two examples:

> * Вороны, разумеется, прилетали клевать трупы в верхнем ярусе ворот. *Акутагава Рюноскэ, "Ворота Расёмон", пер. Н .Фельдмана*
>
> * Покойник был дурак и так любил чины, // Что требует в аду короны сатаны. *Роберт Бернс, "Надпись на могиле честолюбца", пер. С. Я. Маршака*

You can't swap the words in the excerpts above.