e.g. it does not take things like crouching and zooming in in account
as far as I can tell, zooming in effects it properly, as it does change size when changing FoV, and zooming is just effectively a FoV change.
GetSpread() in weapon.cpp always returns the same value - crouching does not affect spread. ctrl+f getspread here, is always same value
I can however reproduce this issue. I fired with my crosshair precisely here, and the resulting block damage is questionable.

Shotgun spread is.... a bit special, so it's probably not the best weapon to test for this. Yes, GetSpread is always the same. The way I remember it working is that GetSpread is constant per weapon, but then later multiplied with factors depending on crouching etc.
Zooming in stays the same currently yes, but it should actually halve the spread.