I am not positive if this is the correct explanation, but here goes.
Think of a simple bar electromagnet (the rotor) in a uniform external magnetic field (imagine it as going vertically up and down of this computer screen). The maximum torque on the bar actually occurs when the bar is at right angles to the external field (imagine the bar electromagnet oriented in the horizontal direction).
So the torque tries to rotate the bar into the vertical direction. Actually when the bar is vertical, there is no torque on it.
So the job of the ESC (or back in the old days-the brushes) would be to reverse the direction of the current in the bar electromagnet so that just after it reaches and swings past the vertical so that now the rotor is repelled but continues to rotate in the same direction, And so on and so on.
The question is when does the ESC switch that field. As the bar aligns with the external field the torque drops to zero, so continuing to push current through the rotor doesn't really add a lot to the total torque generated by the motor. Another wrinkle is that the "back EMF" generated in the windings of the rotor is also dropping to zero as the rotor aligns with the field, so the current is actually increasing.
You can see that if you want to get every last piece of torque out of that motor, and don't really give a damn about how much power you are pushing into the rotor (which generates wasted heat along with power to the prop), you would want to keep the current flowing to the last millisecond, and turn it back on (in the opposite direction as soon as possible. But this takes a lot of input power from "somewhere" to provide.
On the other hand if you are more frugal and don't need every last drop of power to the prop, you might imagine turning off the current earlier (lets say 10 o BTDC), letting the rotor cost thru TDC and 10o and then turning it back on (in the opposite direction of course. This is more efficient, but less power comes out.
That is my definition of what I think is going on with timing. The first represents "hard" timing, the second represents "soft" timing. The CC Phoenix ESC claims it automatically adjusts the timing to suit the particular motor, and that the other selections of hard, default, or soft work around this point. I have used "soft" timing since I think efficiency is more important to me --and my motor is already adequately sized to the application. However I confess that I haven't noticed anything really different between the two. I made one test using two different CC Phoenix ESC's one set to default, and one to soft. The problem in that test was that although the set rpm's was suppose to be the same, the actually was slightly different, and so I couldn't make a definitive statement. This was before the Fixed RPM mode, so maybe I could try again.