You're right to be confused! The lens composition actually does work in the order you expected - colorsLens first, then semanticLens, etc., ending with hoverLens.
The reason it looks backwards is that R.compose reads right-to-left for regular functions, but with lenses it's different:
When you compose lenses with R.compose, they execute in left-to-right order (the order written):
colorsLens- focus ontheme.colorssemanticLens- within that, focus onsemantic