About Objective-C, it sounds like if Embarcadero did make its own Delphi-based wrapper around the OOP layout of this technology. In short, messages were encapsulated inside methods, and exposed as interfaces. Embarcadero RTL team used the new RTTI and generics language features to expose the Objective-C API into standard Delphi interfaces.
FPC did extend the compiler so that Objective-C style of coding appeared in the code: this is the so-called "Objective Pascal" mode, which handle both its message and memory model as native features, at the compiler level.
I don't have any preference. Both have pros and cons. The FPC solution sounds lighter and automated (the OSX APIs are created using an automated process). The EMB solution sounds more "pascalish", since the language was not modified, but some wrappers were designed over the OSX APIs.
What is nice in both case is that we are not stick into the flat Carbon API, which is 32 bit only. Calling directly the Cocoa APIs will release the full power of Mac OSX, and allow to write 64 bit applications (already for FPC, in the future for Delphi).
The new "unit scope names" introduced in Delphi XE2 for handling several
platforms (Windows/Posix or VCL/FireMonkey) do make sense to me. By the way, it
seems definitively better than the previous LibC huge unit, as used for Kylix.
And perhaps more rigid than the FPC library.
In practice, I had to modify our framework source code for all VCL-refering unit names. But nothing difficult - just one step preparing for FireMonkey.
In all cases, this is a quite interesting step into cross-platform.
Nice talking about it on our forum, if you wish.