Da ich das Thema interessant und in Bezug auf FMX auch wichtig finde habe ich mal einige Tests und Überlegungen angestellt.
Video:
http://youtu.be/TNpaI2D_nqE
Anlage: Testprojekt (nur Quellen für XE3)
Im Grunde läuft meine Überlegung darauf hinaus, dass nicht ständig alle Controls neu gezeichnet werden müssen sondern zu jedem Control ein Bitmap verwaltet wird, das bei Bedarf neu auf die (das, den?) Canvas kopiert wird. Nur wenn sich das Control selbst ändert (Status, Größe, o.ä.) muss es tatsächlich neu gezeichnet werden. Ansonsten reicht es, das einmal erzeugte Abbild auf das Formular zu kopieren.
So sollten Änderungen auf dem Formular schnell und jederzeit dargestellt werden können und das auch im Debugmodus.
Eine ständige (echte) Neuzeichnung aller über- und untergeordneter Controls könnte vermieden werden.
Die Entscheidung, welche Control-Abbilder neu auf das Formular kopiert werden müssen, könnte das Framework unabhängig von den Zeichenmethoden der Controls entscheiden.
Diese Aktion wäre auch unabhängig vom Mainthread jederzeit möglich (auch im DebugModus).
Ich weiß, dass das etwas ... äh ... unscharf klingt, aber ist das ungefähr verständlich und plausibel?
Man könnte alle Control-Änderungen sofort auf dem Formular sehen.
Es würde eine gewisse Trennung der Control-Zeichenroutinen und der tatsächlichen Formularzeichenfläche geben.