miklos, i understand it would be nice to keep a process within only one platform - however this is not possible in many cases and one has to pay attention to specific behaviour (eg. character sets). too many proprietary features make it sometimes expensive to find the common denominator.
frameworks are basically a good idea to speed up development of applications - they provide a large range of prepared elements the programmer doesn't need to *re-invent* (simple examples are selectboxes, on-click events, menu trees, ect). however they are only of little use if it comes to individual elments and an existing codebase. and they are of no or almost no use if they don't allow to compile the application for all needed destination platforms.
as far as i know cocoa does not allow to compile win32/win64 applications and only a former version of visual studio allowed to compile mac versions (and i'd assume also not for leopard because of the same reason QT does not currently).
but all this goes much too far into speculation because the guys who have to sort the bytes know best what to use how and when, all that i know (and is commonly known) is, that currently it does not work and a few, but essencial, reasons for.
someone who is exclusively developing for mac might be well served by xcode/cocoa, someone developing exclusively for windows might choose visual studio - for the latter and the .NET framework i know it works well for web or more generic applications, but the result lacks performance when high performance client solutions are needed.
it's that simple, resp. it's not that simple ;-)
christian