OH2 has still a relatively large code base taken from OH1 where things were just different. There was no runtime database. Everything was files and OH build up its runtime state each time it started up, I guess. I never used OH1.
The vision for OH2 is different, but there are not enough developers to push everything at once to that vision. So subsystems got replaced one part after the other. It’s about time the .thing / .item file subsystem gets an OH2 replacement.