https://blogs.oracle.com/optimizer/entry/what_s_new_in_12c
and I quote:
If we detect during execution that the optimizer’s cardinality estimates were wrong, then some plan choices can be changed “on the fly” to better options. While we can’t completely change the plan during execution, there are certain local decisions that can be changed, like join method