Hi Ihor, thank you for all your great work. I did not dive deep into all the details, but the overview you provided sounds sensible.
One minor nitpick: I would prefer a function like ~org-element-property-1~ to be named e.g. ~org-element-property-lazy~ (or something similar), because the "-1" is just obfuscation to me. -- Until the next mail..., Stefan.