I think assignments are more important than you suggest. In C, a = b is similar to memcpy(&a, &b, sizeof(a)), so it makes sense that the variables should be in the same order.
For the same reason, in assembly, I prefer the order mov dst, src, which almost every architecture uses but x86, where Intel syntax does it that way but the arguably-more-common AT&T syntax flips the arguments around. I guess the existence of the latter is proof that src, dst feels more natural to many.
(I don’t understand the point about argument evaluation order. In C it’s undefined, and in other languages it’s pretty uncommon to write calls where it matters…)