I don't think this is specifically the reason, while, yes, the reads are done before-hand, the setting doesn't need to be done in the reverse order, which is where my question originated from,
not to mention that this happens even if you use different variables in the left and right side of the _expression_.
If you take a language like Luau, you can also do the variable swapping, but it does not reverse the order when setting it.
Take the following code as an example:
local a = setmetatable({}, {__newindex = print})
local b = setmetatable({}, {__newindex = print})
a.y, b.z = g, g1
If you run this in Lua 5.1 or any newer versions, it will print the z assignment and then y
While in Luau, it does first y and then z.