Да, действительно можно и так, и в скорости мы получим выйгрыш однозначно, правда тогда я не очень представляю, как в таком случае можно реализовать логику сохранения порядка следования строк как в новом массиве (без заведения соответствующего ключа). То есть например, когда мы просто меням местами две строчки, при этом значения всех полей остаются как есть.
И второй момент, в форме вывода надо будет отслеживать ключи БД, которые могут быть нарушены пользователем. Например, когда он случайно удалит строку, и потом не сохраняя документ вновь ее добавит с теми же значениями, в результате мы потеряем ключ БД этой строки, и он будет изменен после сохранения, что не есть хорошо в некоторых случаях. Ну и дополнительная логика в обработке формы появляется.
И второй момент, в форме вывода надо будет отслеживать ключи БД, которые могут быть нарушены пользователем. Например, когда он случайно удалит строку, и потом не сохраняя документ вновь ее добавит с теми же значениями, в результате мы потеряем ключ БД этой строки, и он будет изменен после сохранения, что не есть хорошо в некоторых случаях. Ну и дополнительная логика в обработке формы появляется.