Hi Mike,
There is nothing special with Evaluate in this situation. Integrate gives a closed form solution that depends on some parameter. So, use the solution rather than redundant Integrate. Using Set rather than SetDelayed would also avoid redundant Integrate.
ClearAll@f
f[a_] := Echo@Integrate[Sin[x], {x, 0, a}]
Plot[f[a], {a, 0, 1}, PlotPoints -> 2]
Plot[Evaluate@f[a], {a, 0, 1}]
ClearAll@f
f[a_] = Echo@Integrate[Sin[x], {x, 0, a}]
Plot[f[a], {a, 0, 1}]