That's exactly what those options are, gmm= gives the estimation (i.e. the coefficient) weighting matrix, and cov= gives the covariance weighting matrix, which is one additional step. If you choose a different cov= method than the gmm= method, then that extra step of the weighting matrix calculation will give different results, since it is using a different estimation method.

Perhaps a step-by-step explanation of what goes on will make things clearer:

- Start with an initial estimate of beta (usually from 2SLS)
- From that Beta obtain an estimate of the residuals, and from those residuals form the weighting matrix, W, using whatever option is in gmm=
- From that estimate of W, calculate a new estimate of Beta
- If doing only 1 iteration estimation, then those Beta are the final coefficient estimates. If doing iterate-to-convergence estimation, then re-do steps 2 and 3 until they have converged
- If there is no cov= option, then calculate the covariance matrix using the existing weighting matrix, W
- If there is a cov= option, then re-calculate the residuals based upon the final Beta estimates, but using the weighting matrix calculation based upon the cov= option. Note that if the cov= option matches the gmm= option and you've iterated to convergence, then this weighting matrix calculation will give exactly the same results as the existing W. If the cov= option does not match the gmm= option, then this weighting calculation will not match the previous calculation (and I don't believe there is any theory to say whether it will yield larger or smaller SEs - it depends upon the cov= option, and in your case of White, there is no theory that says that a White correction will yield bigger or smaller)