I found that if we tick the “Alpha is transparent” option in the texture’s importer, it would corrupt the RGB value in the region where alpha is 0.
This wouldn’t be a problem for normal AlphaBlended shaders, but it’s undesirable for premultiplied alpha shaders which need to extract the RGB value at the transparent region.
The only workaround I found now is to explicitly add an alpha channel in PSD or TGA, and leave the option unchecked when imported into Unity.
Not sure if this is expected behaviour, but not quite desireable.