func の型は void (char*) だな。(配列型へのキャストが無理なのと同じく、この型への直接的なキャストは無理だが)
typedef すると分かるが、
typedef void foo(char*); とした時、
foo* は関数ポインタになる。
だから、foo は関数を表す型である。
もし foo が関数ポインタ型なら、
foo* は関数ポインタへのポインタ型となるからね。

>全く無関係な世界の話
まあそうだな。
関数型の値を関数ポインタ型の変数に代入しようとすると、
自動的に関数ポインタ型へと変換される。
このあたりは、配列とポインタの関係に似ている。