А сведение к невырожденному случаю почему плохо?
Не понял вопроса: как можно вообще вырожденный случай свести к невырожденному? (во всяком случае, естественным образом)
Ладно, я понял, как экономнее всего выйти на МНК в общем случае (наверное, это Вы и имели в виду). Нам изначально нужна не система уравнений, а наилучшее приближение к

линейными комбинациями вида

, причём векторы могут иметь какую угодно природу. Искомая комбинация -- это ортопроекция вектора

на линейную оболочку векторов

, т.е. должно выполняться

для всех наборов

. После раскрытия скобок и перегруппировки слагаемых получаем

для всех

. Отсюда

для всех

, а это и означает

. Отсюда уже автоматом следует и равносильность невырожденности матрицы Грама линейной независимости векторов

(что практически важно), и даже (что уже бантик) равносильность её невырожденности и её строгой положительности.
Жаль только, что при этом теряется само понятие псевдорешения и система

; ну, в конце концов, это можно и добавить, если захочется, это уже недорого. Я-то привык исходить именно из понятия псевдорешения; возможно, потому, что параллельно читаю один странный курс, в котором приходится залезать (на не очень серьёзном уровне, но приходится) в теорию операторов, и у меня время от времени в голове всё путается.
Спасибо.