my opinion is that any csprogs.dat that reads the vid_conwidth cvar expecting it to affect anything but the console (which is outside the scope of csqc) is a buggy csprogs.dat.
read VF_SCREENVSIZE if you want to know the current virtual screen size (without depending on the width+height args), read VF_SCREENPSIZE if you want to know the current physical screen size.
@baker: note that these were not in csqcwinquake. you should probably consider adding them.
fte's cvar() builtin has a hack in it so that vid_conwidth and vid_conheight queries return the current virtual size, regardless of the cvars. this allows a 0 value to be used for auto or whatever.
cvar_string() doesn't contain this hack, so you can still use that to work around the work around.
any mod that uses vid_width+vid_height expecting it to be the physical width+height is buggy too (vid_restart may have failed, or simply not been used yet, or vid_mode overwrote it or whatever). DP requires it for certain things. this annoys me.
needing to depend on the engine recognising ANY specific cvar is a bad thing, imho. Oh, and its a pain to document...

.