その後、どう説明すればわかりやすいか、いろいろ考えてみた。

>ではポインタの指す実行時型のデストラクタから呼びに行くというのは

いやいや、pがCParentのポインタである以上、あくまでCParentのデストラクタを呼び出そうとする。
ところが、CParentのデストラクタを仮想にしておくと、デストラクタのありかはインスタンスをみてね、となるわけ。
で、みてみると、pが指していたのは実はCChildクラスのインスタンスだったので、
なんとCChildのデストラクタを指しているわけですよ。

さて、ここで基本的な前提知識として、CChildはCParentの派生クラスなので、CChildのデストラクタは、
CParentのデストラクタを呼び出します。これは仮想にしてるかどうかとは関係の無い話。

めでたしめでたし。