I'm the author of this particular recipe.
Most Red-Black tree implementations and text books assume a mutable context in which you can update specific nodes in-place. In such contexts, changing the color of a node is definitely cheaper than a tree rotation.
However, the Clojure Book implementation is purely functional, meaning there are no mutations. As such, whether you're recoloring the nodes or creating a new subtree, the cost is the same since we're copying the nodes anyway. Therefore we go with the rotation. This allows the balance function to be as simple as it is while maintaining all Red-Black properties.
This implementation is inspired by Chris Okasaki's book Purely Functional Data Structures. It's an excellent reference I would recommend to anyone interested in persistent data structures.