Im not familiar enough with the code, but maybe here is a bug darktable/channelmixerrgb.c at darktable-3.4.x · darktable-org/darktable · GitHub ?
d->MIX[0][i] = p->red[i] / norm_R;
d->MIX[1][i] = p->green[i] / norm_B;
d->MIX[2][i] = p->blue[i] / norm_G;
Just wondering why green is divided by norm_B and blue by norm_G but red by norm_R?
I might be completely off however, since I only looked at the code for seemingly irregular patterns, admittedly not really understanding what is going on. I hope it helps.