varの例えにvoid*を持ち出すのがわからん
Cでvoid*使うのって関数の引数の話じゃないの?
そこではvarは使えないし

引数がvoid*なら元の型を追いかけるのに呼び出し元をたどる必要があるけど
varが使えるのって関数内のローカル変数くらいなんだから可読性にまったく影響しないよ

var list = new List<int>();
右辺見りゃ型わかるやん