If you're talking about being close enough for them to knock the weapon away from you, then sure, you lose accuracy if and only if they disrupt your weapon. It quickly drops from a nearly certain hit to none at all if the disrupt is successful. But if you were just a few cm further, and out of reach, you're going to hit most likely.
What isn't debateable is that accuracy improves as range to target decreases. If you want to talk realism, accuracy at sufficiently short ranges (instant hit, no drift) is a function of angular size, angular velocity, and short term changes in angular velocity. Someone with good aim can defeat the angular velocity itself, meaning the only factors that matter are range to target and the target's ability to perform evasive maneuvers. You can write the latter in as a unit defense attribute, the former fits exactly what we're talking about. The angular velocity factor is unimportant as it is more complex to simulate (especially in a turn-based game) and it is suitably covered by having soldier accuracy attribute in the first place.
There's nothing wrong with allowing a soldier to hit every time when they are adjacent to the target. It's a reasonable compromise for the much more important and very realistic situation in which you almost always hit at 1 tile away. And if someone is REALLY bothered by this, they can write their own mod to perform weapon disruption attacks on reactions.