Und die paar Komponentenhersteller die's noch gibt müssen eben ein paar defines anpassen, wenn überhaupt.
Wenn man das einmal geschickt anfängt, ist es i.A. kein Problem. Ich codiere immer gegen den neuesten Compiler (nicht zwingend die neuesten Features), so daß es damit ohne IFDEFs funktioniert. Die Kompatibilität zu den älteren Versionen fange ich dann durch
{$IF CompilerVersion < xx.x}
oder (meistens zutreffender)
{$IF RTLVersion < xx.x }
ab. Wenn das zu umständlich wird, fliegt der Support für die alte Version raus. Wer das unbedingt braucht, kann ja die alten Sourcen weiter verwenden - auch Abwärtskompatibilität hat Grenzen.
Neuere Versionen sind so häufig ohne Änderungen lauffähig.