Currently, smoke grenades can be easily rendered useless as cover:
Smoke grenades do not block view if you're standing right on top of
them. I believe what happens is that individual puffs of smoke are
culled from the viewport when the player gets too close. This means
you can happily run up to an active grenade and see pretty clearly
in all directions.
What should probably happen is essentially a screen tint/overlay the
same hue as the grenade smoke that increases in opacity the closer
the player gets to an active grenade. Smoke obviously spreads and
dissipates the longer the grenade is active so the opacity level should
probably be calculated based on proximity to the smoke and the length of
time the grenade has been active.
A grenade that's been active only a second or so would produce no
opacity at high distance and high opacity at very low distance.
A grenade that's been active long enough to reach "peak" output (that
is, maximum smoke spread/volume) would produce moderate opacity at high
distance and maximum opacity at moderate range - meaning that you'd be
practically blind standing in the smoke near the grenade but would regain
sight as you stepped further away from the grenade, simulating the dispersal
of smoke in the atmosphere.
I hope I'm not being completely incomprehensible.
This may already be possible to implement using the new "screen effects"
features that I know almost nothing about.
Having just sat and written this, I've realized that this could probably be
applied to any smoke-producing explosion (to create an effect similar to
the visibility obscuring clouds of dust created in OpF2).