Как я сказал выше - с иммутабл проблема расхода памяти. когда данных много - жопа. На объекты перешли с массивов, потому что расход памяти меньше. плюс появился автокомплит в коде, сложнее допустить ошибку при куче однотипных названий полей.Всегда есть последний return, где ты можешь написать new MyStatData(...) от всех накоплений.
P.S. я знаю что пхп для стат расчетов не подходит, но это только небольшая часть приложения