Except that the normal equations are rarely a good way to compute the action of the pseudoinverse (though explicitly computing it would be even worse).  QR is the workhorse for under- and over-determined dense systems, with SVD as a fallback for especially nasty ones.