Ein eingeschränktes, aber generelles Ja.
JavaFX läuft auf alledem, mit ein paar Voraussetzungen natürlich:
Erstens müssen PDAs und Smartphones von einer sehr neuen Generation sein, um JavaFX zu können, soweit mir bekannt ist. Entwickelst du für diese darfst du allerdings nicht die komplette JavaFX API sondern nur das "Mobile Profile" verwenden. Da fehlen beispielsweise die Swing-Klassen, die du im "Desktop Profile" mit dabei hättest.
Sobald Java auf deinem System installiert ist, können Browser auch JavaFX einbinden. Beim ersten Start eines JavaFX Applets gibt es nur eine lange Wartezeit, in der die gesamte JavaFX API heruntergeladen wird.
Allerdings gibt es mit JavaFX dennoch probleme, die du bedenken solltest, bevor du etwas damit machst:
Erstens ist durch die Übernahme von Sun durch Oracle die Zukunft von JavaFX mindestens fraglich.
Zweitens gibt es momentan keine besonders gute IDE Unterstützung für JavaFX (in Eclipse überhaupt nicht, das Netbeans-Plugin ist noch sehr verbuggt!)
Drittens waren alle JavaFX Versionssprünge bis jetzt nicht mehr Rückwärtskompatibel: JavaFX 1.0 bzw. 1.1 Anwendungen lassen sich meißt nicht mehr mit JavaFX 1.2 kompilieren.
Viertens kann es zwischen Desktop- und Mobilgeräten in GUI Fragen keine Plattformunabhängigkeit geben: Mobile Geräte haben eine viel geringere Auflösung und haben deshalb völlig andere GUI Anforderungen als Desktop-Anwendungen. Das gleiche Userinterface für Desktop und Mobile zu verwenden ist keine gute Idee.