モードレスダイアログについてです。VC6です。
やりたい事は一応できるのですが、解せないことについて御教示下され。

[できてる事]
呼出し元でダイアログをnewして ->Create(...)。
ダイアログをバツ(OnClose)で閉じ、PostNcDestroyでdelete thisし自殺

[わからない事]
呼出し元のメンバでダイアログのオブジェクト(実体)を保持し、.Create。
ダイアログをバツ(OnClose)で閉じる。この時、OnCloseをオーバーライド
して、CDialog::OnClose()の前にDestroyWindow()を呼んでおくとOK。
CDialog::OnClose()のみだと、再度ダイアログ開く時にDebug assertion failed。なぜ?

MSDNを見るとデフォルトのOnCloseがDestroyWindowを呼ぶとあるので、
(IDOKやIDCANCELでなく)バツで閉じる限りはオーバーライド + DestroyWindowの挿入は
不要かなと思ったのですが、なぜこの場合はあえて挿入する必要があるのでしょう?
それとも、挿入するとたまたまうまくいってるように見えてるだけなのでしょうか?