とあり、その理由を境界調整で説明しています。C++では、voidへのポインタを、別の型へのポインタに代入する際には、キャストが必須です。
そのコラムの最後の方に
と書いてあります。ポインタを他の型へのポインタに型変換するということは、その値までもが変わる可能性のある危険な行為です。
そのため、C++では、voidへのポインタを別の型へのポインタに代入する局面では、明示的なキャストが必須となっているのです。
境界調整というものでポインタの値が勝手に変わってしまうことがあることは理解したのですが、それが明示的なキャストをすることでどのように解決するのでしょうか。