1. Не все классы, а только родителю моделей надо реализовать интерфейс ArrayAccess.Всем классам, в которых логика хранения данных различается. Что-то можно будет вынести в родителей, да.
2. Вы также можете использовать свой метод, просто синтаксис будет "корявый" - $data['getSum'] , но по сути тот же ленивый подсчет данных.Могу, но зачем? Относительно преждевременной оптимизации я уже высказался - до тех пор, пока она не нужна, не нужен и такой синтаксис, а когда она появляется его становится невозможно использовать.
По поводу "заказчик разорится", то многие вещи можно сделать быстрее и проще вообще отказавши от фреймворковКак раз наоборот, фреймворки именно для упрощения и придуманы. В конечном итоге вы всё равно будете использовать фреймворк, только самописный.
я не думаю что это прям время затратное вложение: реализовать интерфейс и поменять синтаксис. Просто это может в какой-то степени быть нечитабельно и не логично для большинство программистов.Любая работа, сделанная напрасно - затратное вложение. Вдобавок, это вносит в код дополнительную сложность, а значит его дороже поддерживать и развивать. Ну а улучшение читабельности выливается в прямые затраты средств, это факт.