Because tented vias are very common, and to untent them all would be the less expected action.
The purpose of MinMaskGap() is to ensure that *existing* gaps meet the minimum, to pass DRC at the fab.
If you want to *create* a gap, there are other commands for doing that on vias.
This is a deliberate check that is not present for pads or pins:
action.c: 4328: if (via->Mask && via->Mask < via->Thickness + value)
The fix would be to simply remove the "via->Mask &&", but why was that there in the first place?