I said it cannot be reworked, not that it is unusable.
That reworking part stands for any other framework, too. You cannot change foundations without demolition.
Problem with FMX is that because foundations are not exactly great, many things that should be improved cannot easily be done.
For instance, layout alignment logic is totally insane. It does not auto align layouts from insertion order, but from controls existing x, y positions. Try hiding one view and showing it again, and the whole layout will be broken. You have to manually recalculate the whole thing which completely defeats the purpose of auto-alignment.
Then like I mentioned before, no separation between low and high level code. Separating those would totally dismantle whole thing.
Poor support for multi-threading - because almost everything is directly connected to UI part that cannot be touched from background threads. It is hard to design fast and responsive UI under such constraints. And you cannot fix that without separating low level and high level code, as well as base, primitive classes.
and list goes on...