I have worked with and build a SoA system. I quite like it. I worked with one written in C++ where your objects were represented by small reference structs and you access all of the real members via static methods. It was done to improve cache access times as often you iterate over a large number of objects but read only a single property (say only the position) of each object. I don’t know how big a performance improvement this actually is, as we don’t have a feature-parity version of AoS lying around. But taken by itself the SoA does not feel less comfortable to work with. Though we make heavy use of a code-generator to not write getter/setter boilerplate.
That fully depends on your definition of what the “reversed” state is. Will ecosystems adapt to the changed climate? Yes. Can temperatures even drop again? Sure. But species lost are gone forever. Ecosystems destroyed will never be the same again. Different ones can develop with enough time and stopping the human interference… But that is hardly “reversible”. That is… natural systems covering up the damage. Going on. Not reversing it.