There is a lot of stuff missing from JavaFX that could be of interest to RIA development (JavaFX-XML binding, for example -- I don't count the current primitive XML parsing in JavaFX). In addition, there is a lot of JavaFX that is not properly documented (e.g., reflection). Also, I understand that Sun wants JavaFX to be sort of a DSL for building RIAs.
Should complete apps be built with JavaFX alone? Or should we be looking at mixing Java and JavaFX? Do you know if Sun will be adding the missing pieces to make it possible/easier to use JavaFX for the whole application?
It is definitely Sun's intention to keep building the platform over the next few months/years. Specifically, look out for more UI components in the next release, improved performance, and many other features. For now though, we recommend that you leverage one of the biggest strengths of JavaFX, which is the ability to mix and match Java with JavaFX
It is quite natural to mix Java and JavaFX, eg. if you want to get MP3 ID3 tags or a physics system (ie. leveraging existing libraries). Or just using some existing Java back-end (business logic, database access, etc.).
There is one advantage in making the maximum code in JavaFX, as long as you stick to the Common profile (which is nearly everything except advanced graphic effects): you don't have to think twice to ensure that your application will run on a mobile, if that's a platform you target.
Otherwise, you have to ensure your Java code sticks to MIDP 2.0 (for example), which is quite constraining...