Well, zstring and preset values can only coexist in a cvar with MIN, MAX and then some other values. If a value between MIN and MAX is used (inclusive), then the zstring is allocated. This could be bad when CV_LoadVars checks zstring to determine if the current value string was allocated.
EDIT: It seems this actually fixes #487 (closed).
This is only applicable for bounded cvars (MIN, MAX), since otherwise there's no way to allocate a zstring.