I dug through the optimizations in r300_create_blend_state, and the problem is the "Disable reading if SRC_ALPHA == 0" optimization. It is not correct if the source factor is DEST_COLOR. I'm checking if any other source factors have to be excluded.