Attributes[HandleLegacyOption] = {HoldAll};
HandleLegacyOption[o : OptionValue[sym_, opts_, name_]] := o //. Fallback[old_] :> OptionValue[sym, opts, old]
Options[f] = {"bar" :> Fallback["foo"], "foo" -> 1};
f[OptionsPattern[]] := {HandleLegacyOption@OptionValue["bar"]}
f[]
f["bar" -> 2]
f["foo" -> 2]
f["foo" -> 2, "bar" -> 3]
(* {1} *)
(* {2} *)
(* {2} *)
(* {3} *)