> if you recognize that some common construct is in fact a semigroup or functor, does knowing this actually buy you anything?
At least in Haskell one thing it means is you can use lots of new helper functions.
> guide you to some nice properties, such as easy composition.
Yep, which gets you code re-use for one.