I'm afraid one shouldn't take the old "write once, run everywhere", Java slogan by Sun too literally. It is more of an ideal (or a myth 😉 ).
Java applications that take advantage of extensions available on Series 60 (7650, 3650, etc.), will not work on any other device simply because the same fetures just aren't there.
E.g., if the application was written to use the Series 60 screen resolution of 176x208 pixels, it will have problems on a Series 40 128x128 display (vice versa often works, but will only use a part of the Series 60 phone's display).
In other words, the Java iplementations vary from manufacturer to manufacturer and at least device-family to device-family for one manufacturer, if not from individual device to device or even the same device with different firmware.
Things will be somewhat better with the MIDP 2.0 specification, but it still leaves many, many things as "optional", which means that they're not mandatory & not all will implement them.
Handset vendors try to reduce the number of optional features and how, exactly, they should implement things for compatibility/interoperability through an effort known as Java Technology for the Wireless Industry, JTWI a.k.a. JSR-185.
So, first we need MIDP 2.0 phones out, then we need the JSR-185 spec out, and then we need updated MIDP 2.0 phones that also supports JSR-185, and then we need tools vendors to agree how tools are implemented (JSR-198), and then we need them to update their tools, and then we need developers to start writing compliant code.
Perhaps in a couple of years...