I don't know why Sun can't solve the problem of making native feeling GUI's with totally portable code. It has been done before, and they are so close. The problem with Swing apps is that they don't feel or act native. You can't use a scroll mouse with them, they blink excessively on redraw, and they are so sloooooow.
Look at what the Eclipse team did
. SWT apps scream and are portable. They feel native, and use lots of native code, but the code you write is 100% Java. This toolkit is so good that you can't even tell that the apps are written in Java. The one problem with SWT is that it introduces a new API--it's not just an implementation of Swing. That's too bad, because if it were, the regular implementations would disappear. My guess is that it's just not easy to make an implementation of Swing this way, especially with the pluggable look and feels (which should just go away).