You will anyways need a validation (verification) of the performance of the optimized model. Regardless of the testing scheme you employ for this (resampling/[outer] cross validation/[outer] out-of-bootstrap, single train/test split, validation study), this is where you evaluate the performance for all parameters of interest, i.e. $f$ and $g$.
A slight exception are parameters that are not calculated from test cases but rather fromt the model itself (say, some measure of model complexity). These are of course calculated directly for the final model (in your case: final model for each of the algorithms). Nevertheless, I'd also calculate them for out-of-bootstrap or cross validation surrogate models in order to check whether they are stable and possibly different between surrogate models and final model.
In addition, it may be interesting/important to study how $g$ evolves alongside the $f$ opimization, so it may be worth while to compute $g$ also during the [inner] cross validation inside the optimization of $f$. (That is, if that computation is feasible).