CPUs like straightline code without branches! They make prefetching the next batch of instructions. They dislike conditional branches which they have to predict! They really dislike dynamic branches (function pointers, methods; caveats), but that needs a JIT.
In some cases this goes hand-in-hand with concision (e.g. collapsing chained GOTOs arising from lowering controlflow), other times not so much. So there's an analysis pass deciding where to optimize for concision vs minimal controlflow.
3/