Java developers expect that when they develop applications, the end result is a cross-platform binary that will work on all platforms with a Java VM (the WORA promise). However, for JavaME, even on its best days, this was accomplished only partially. Now that the innovation of JavaME through standards has been halted for a while, JavaME has drifted even further away from its cross-platform goals.
The point for JavaME developers to leave their cross-platform ambitions behind has already passed and it is time for a mindset change. Now is the time to concentrate on bringing the best possible platform user experience. Most of the time, this will force applications to utilize platform specific extensions and APIs. A big portion of the code will still be cross-platform but applications will have to create platform specific versions.
It can be argued that this is actually limiting your application's reach by choosing to optimize for selected platforms. That argument would probably hold true in the era before the app. stores. Today app. stores are the most competitive market places. An application's success on these markets depends more on the quality of the experience rather than the number of devices it can run.
JavaME developers are still luckier with regards to cross-platform use of their code. They can still share a big portion of their JavaME code for Symbian, S40 and BlackBerry versions of their applications. With the right architecture, can even reuse some of it for their Android applications.
I think JavaME developers will benefit more from their proficiency, if they learn about the platform specific features on their target platform(s). Use the platform specific APIs, attributes, system properties to create the best experience. I am very well aware that it is more work but after all satisfied users is the best way, that I can think, to make profit from your applications.