Another reason to allow swapping values ( {a, b} = {b, a} ) is
nice parallel semantics that might provide cool features on some
future (or niche) parallel hardware.
Think of
{a, b} = {funcA(), funcB()};
Parallel semantics is able to evolve to parallel execution, which
is one cool feature.
In Go language it is so.