I work i a company which basically likes to have it’s own GUI and tools framwork to work with for both java and c++ codes.
They first create the basic code, set up interfaces to work with “shared code” and then “platform code” is created to support different platforms (windows\linux\symbian etc…)
The real advantage used to be that:
1. we had some great (well relatively ) GUI when you compare it to the native GUI (on WM 6.5, old symbian devices and J2ME deices)
2. our applications looked the same on all platforms, major plus if you are used to our application and change your phone to a new platform.
3. most ports are easy enough.
It all looks pretty pinky on the horizon, only times have changed.
To be honest i think that even J2ME have prettier GUI these days and if not you can still use LWUIT which is open source.