Why Optional in Set is not held by the HoldFirst attribute?

When evaluatingf[x_:x0] := x, x0 will be evaluated, regardless of the HoldAll attribute of SetDelayed.

Why the second argument of Optional is evaluated in a non-standard manner?