You passed -5 to timethese, which means it should run the benchmark not for a specific number of iterations, but for a specific number of seconds. This is why you see that the wallclock for both "enum" and "list" is exactly 5 seconds. I can't tell why "enum" uses more sys time without seeing the code, but the important bit is that both run for at least 5 cpu seconds
The n value shows you the number of iterations timethese managed to run within the specified time. That means that "list" did three times as many iterations as "enum"
Since "list" can do 1668 iterations per second, while "enum" only does 502 iterations per second, "list" is over three times as fast.
All cmpthese does is take the results from timethese and generate the comparison table at the bottom