I am reading Professor Saad's "Iterative Methods for Sparse Linear Systems" (2nd edition).
The basic algorithm for FOM is given on page 166 and the basic algorithm for GMRES is given on page 172.
Both FOM and GMRES appear to build the same Krylov subspace and upper Hessenberg matrix.
However, at the very end of the algorithms, FOM solves a linear system to obtain $x_m$ (seemingly discarding the last row of the Hessenberg matrix) while GMRES solves a least squares problem with the whole Hessenberg matrix to obtain $x_m$. Then, the solution to both problems is $y_m = V_m x_m + x_0$ and I think the $V_m$ are the same in both algorithms.
My questions are:
Why does this (in my opinion, seemingly small) difference create two separate algorithms?
Why is GMRES used widely over FOM?
Clearly I seem to be missing something, but I don't know what.