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

, где

,

и

-- это локальные координаты с центром в данной точке, причём ось

направлена по нормали к поверхности. После разворота и сдвига этих осей в "глобальное" положение функция, задающая поверхность, в каждой точке останется в первом приближении линейной, т.е. будет

Другими словами, матрица вторых производных -- тождественно нулевая. Ну а это уж в точности означает, что функция

линейна, т.е. задаёт плоскость.
Это, конечно, работает только там, где поверхность не "вертикальна". Но вот тут как раз и подойдут соображения
Brukvalub насчёт компактности.