Played with modded items and COOK_WEIGHT_DIV a bit, and it looks like odd values in the nutrients get rounded down before applying the modifier. I made some grey sludge to test with instead of collecting berries:
.Grey sludge. *COOKERY* /1/
[SPOILAGE_DAYS:0]
[WATER:9]
[CARB:45]
[PROTEIN:4]
[FAT:3]
[WEIGHT:0.1]
If I use COOK_WEIGHT_DIV like this:
.Dried sludge. *COOKERY* /1/
{Grey sludge} [remove] [roast]
[COOK_WEIGHT_DIV:3]
then the original item has nutrients just as described, and the dried sludge has weight of 0.03333, just as expected, and water 24 (i.e., 8 * 3), carb 132 (i.e., 44 * 3), fat 6 (i.e., 2 * 3), and protein 12 (i.e., 4 * 3).
The same thing happens if I set one of the nutrients in the processing:
.Dried sludge. *COOKERY* /1/
{Grey sludge} [remove] [roast]
[WATER:0]
then I get 0 water as requested, but the odd nutrients get rounded down, so the output item has 44 carb and 2 fat.
The other interesting bit is that if you set COOK_WEIGHT_DIV too high, you can trigger an overflow - nutrients aren't allowed to be higher than 255, so setting CARB:100 and COOK_WEIGHT_DIV:3 will result in a CARB:255 item and a loss of 1/6th of your nutrients.
My interpretation of this is that the object nutrients are stored in 8 bits, but the low order bit gets dropped during cooking processing for some reason and isn't ever restored.