Moore-Penrose inverse for an arbitrary matrix $X\in \mathbb{R}^{n \times p}$ is defined by a matrix $X^\dagger$ satisfying all of the Moore-Penrose conditions, namely
\begin{align} (1) \;\;\;& XX^\dagger X=X \\ (2) \;\;\;& X^\dagger X X^\dagger = X^\dagger \\ (3) \;\;\;& XX^\dagger = (XX^\dagger)^T \\ (4) \;\;\;& X^\dagger X=(X^\dagger X)^T \end{align}
which can be found by singular value decomposition (SVD). If a matrix $G$ satisfies only the first condition $(1)$, then it is called a generalized inverse (G-inverse). In addition, if it satisfies both two conditions $(1)$ and $(2)$, then it is called a G2-inverse.
My question is rather general. Since there is always a unique Moore-Penrose inverse for $X$ by SVD, why and when should we also consider G or G2-inverse? Is there any computational advantages of using G2-inverse instead of Moore-Penrose inverse?
There is an example of using G2 inverse in ANOVA e.g. https://www.stat.purdue.edu/~fmliang/ANOVA.pdf
Further information, G2SWEEP algorithm is suggested in SAS Technical Report R106 (https://support.sas.com/documentation/onlinedoc/v82/techreport_r106.pdf). However, I don't see how G2-inverse is better than Moore-Penrose inverse.