From the help about Callout[]
Callout[data,expr, ... ] can be used as a wrapper in visualization
functions such as Plot, ListPlot, etc....
In my trial V11, Callout does not work in ParametricPlot
poly = {{0, 0}, {1, 1}, {2, 0}, {3, 2}};
f = BezierFunction[poly]
Check any of these, neither of them works
ParametricPlot[Callout[f[t], "label", f[.5]], {t, 0, 1}]
ParametricPlot[Callout[f[t], "label", After], {t, 0, 1}]
However, this does work
data = Table[f[t], {t, 0, 1, .001}];
ListPlot[Callout[data, "label"], Joined -> True]
This also works
ListPlot[{Callout[f[.5], "label", f[.5]*{1.1, 1.4}]},
PlotStyle -> Red]
Show[ParametricPlot[f[t], {t, 0, 1}],
ListPlot[{Callout[f[.5], "label", f[.5]*{1.1, 1.4}]},
PlotStyle -> Red]]
but at the cost of using Show to mix artificially two graphics: 1) the curve and 2) the callout.
The need of using show is a serious inconvenience, because the introduction of callouts in the context of parametric curves makes the situation unnatural, unnecessary and messy.
Anayway, if Callout is meant not to work with ParametricPlot, it should have been explicitly documented except if ParametricPlot is not included by definition in the set of "... functions such as Plot, ListPlot, etc..." or, in other words, if the expression, "... functions such as Plot, ListPlot, etc..." explicitly excludes ParametricPlot., or even ParametricPlot is not considered a visualization function.