Какой смысл задавать вопросы к причинам существования древнего легаси? Написал когда-то студент за миску риса, с тех пор и кочует для обратной совместимости
Можно делать ввод и проверку в одном цикле с ресайзом, не нужно будет ещё два раза проходить.
Так-же вы проходы делаете по строкам при проверке, а не столбцам
Кто сказал что второй раз вызывается конструктор?
Второй раз вы вызываете оператор =, если он у вас переопределён. А иначе вам конпелятор намекнёт на вашу профнепригодность