Bad programmers do bad design
FUD from CNET.com: Java hits obstacle with cell phones
I don't think anyone ever claimed that you could write a game for one cell phone and have it run completely unmodified on 25 other phones from different manufacturers. If you separate the layers of your program properly, you leave yourself with only the platform specific variables left to deal with for each phone. And that's miles ahead of 25 different implementations.