Well, quote-like operators have higher precedence than +=, so your example can still be explained by the "sub-expressions with higher-precedence operators are evaluated first" rule.
What about +0 then ?
my $c = 2;
my @a = ($c+0, $c+=1);
print "@a";
__END__
2 3
and also here result is 3 3:
my $c = 2;
my @a = ($c+=1, "$c");
print "@a";
__END__
3 3
below two examples proof aliasing:
my $c = 2;
my @a = ($c+=2, $c+=1);
print "@a";
__END__
5 5
my $c = 2;
my @a = ($c+=1, $c+=2);
print "@a";
__END__
5 5
also, what about explicit parens:
my $c = 2;
my @a = (($c), ($c+=1));
print "@a";
__END__
3 3
from perlop (about comma):
In list context, it's just the list argument separator, and inserts both its arguments into the list. These arguments are also evaluated from left to right.