[Shader] normal vector and model matrix inverse

Hi guys !! I am learning “Specular Reflection” shader
I got confused about this problem

o.normalDir = normalize(mul(float4(i.normal, 0.0), unity_WorldToObject).xyz);

this is exactly what it have to be (theory)

but when i fixed it like this !!

o.normalDir = normalize(i.normal);

THERE ARE NOTHING CHANGE !!

The 2nd one has to be wrong !!

Any answers for this ??? Thank for reading my question !!

Full shader code

answer.unity3d.com was really quiet as usual …

this is my answer - stackoverflow

p/s: support Dan guys !! awesome channel 3