Golang ポインタレシーバとnil

こんな記述がある(Go 言語によるWebアプリケーション開発の書籍から)

var ZIP Archiver = (*zipper)(nil)

zipperはArchiver インターフェースを満たしている。

それで、(*zipper)(nil)でnilポインタをzipperポインタにキャストしている。Goではnilは型を持っているので、キャストができる。

ふと思ったところは、ZIP変数にはzipperポインタ型のnilが入っていて、ZIP変数を通して、*zipperのポインタレシーバ経由で、メソッドを使用できる。

なぜ?nil経由でアクセスが可能なのか?一瞬panicが起きそうな気もするが、アクセスができるようだ。型情報があるからメソッドが利用できるだと思う。答えになっていない気がする(汗)