This paper studies the fundamental problem of graph coloring in fully dynamic graphs. Since the problem of computing an optimal coloring, or even approximating it to within n1-ϵ for any ϵ > 0, is NP-hard in static graphs, there is no hope to achieve any meaningful computational results for general graphs in the dynamic setting. It is therefore only natural to consider the combinatorial aspects of dynamic coloring, or alternatively, study restricted families of graphs. Towards understanding the combinatorial aspects of this problem, one may assume a black-box access to a static algorithm for C-coloring any subgraph of the dynamic graph, and investigate the trade-off between the number of colors and the number of recolorings per update step. Optimizing the number of recolorings, sometimes referred to as the recourse bound, is important for various practical applications. In WADS'17, Barba et al. devised two complementary algorithms: For any β > 0, the first (respectively, second) maintains an O(Cβn1/β) (resp., O(Cβ))-coloring while recoloring O(β) (resp., O(βn1/β)) vertices per update. Barba et al. also showed that the second trade-off appears to exhibit the right behavior, at least for β = O(1): Any algorithm that maintains a c-coloring of an n-vertex dynamic forest must recolor Ω(nc2/c(c-1) vertices per update, for any constant c ≥ 2. Our contribution is two-fold: • We devise a new algorithm for general graphs that improves significantly upon the first tradeoff in a wide range of parameters: For any β > 0, we get a Õ(C/β log2 n)-coloring with O(β) recolorings per update, where the Õ notation supresses polyloglog(n) factors. In particular, for β = O(1) we get constant recolorings with polylog(n) colors; not only is this an exponential improvement over the previous bound, but it also unveils a rather surprising phenomenon: The trade-off between the number of colors and recolorings is highly non-symmetric. • For uniformly sparse graphs, we use low out-degree orientations to strengthen the above result by bounding the update time of the algorithm rather than the number of recolorings. Then, we further improve this result by introducing a new data structure that refines bounded out-degree edge orientations and is of independent interest.