I don't disagree with anything other than the Delphi... if we don't aim to support XE5 or XE6 then I think we'd be crazy to be honest. These are the versions that really bring the cross platform capabilities alive. I for one want that.

Realistically, based on a project to port an old Delphi 5 codebase to Delphi XE2, the biggest issues are the string handling. If we code for unicode right off, that shouldn't present a problem and then it's down to how much use we want to make of exotic language capabilities like attributes, overloading, generics etc.