From what I have known it would evaluate and return the second expression
That's not a completely correct statement. Yes, the second is evaluated and returned, but you're implying the first is ignored.
The way the comma operator works is all expressions are evaluated and the last is returned. For example:
int a, b, c, d = 0;
if(a = 1, b = 2, c = 3, d == 1)
printf("No it isn't!\n")
printf("a: %d, b: %d, c: %d, d: %d\n", a, b, c, d);
a = 1, b = 2, c = 3, d = 0
Because all of the expressions were evaluated, but only
d==1 was returned to make the decision for the conditional.
...a better use for this operator might be in a
for(int i = 0; i < x; counter--, i++) // we can keep track of two different counters
// this way going in different directions.