So you are basically saying that one of your LAFs will use native GUI components? You will just ignore functionality the native components cannot support? As you said, if you can design the GUI for each target platform (which is still less work than the current native approach of two very separate apps), this would be OK.
Yes I will ignore it, if the native control can't do it, it would be alien to have it in your app. On the other hand there will be platform dependant interfaces with additional options for different platforms for any native widget, so all native options will be exposed.
I wonder... You won't want to mix native and non-native widgets of the same type in an app. Eg, say you are using all native buttons, except in one area you want an image on a button (or whatever) and the native button doesn't support that. If you used a non-native button, the imperfections of the native emulation are going to be easily noticed, side by side. I worry that, for this reason, in a reasonably complex app you may end up with mostly non-native components.
The emulation of native look and feel would be provided only for some special cases, such as JTables. Not for any other widgets including buttons. You won't have option to just set non-native and have emulated look, instead you'll get totally different look of said button (based on which LAF you will use for that concrete component). So you can do completely custom controls, but not slightly modified native ones.
Also if the native one doesn't support eg. images there is some good reason for it, like the icons not used at all in any application. If you add forcefully such image it will be against native look and feel and this won't be supported.
Maybe it would be better to do all or nothing? Build a Java API for each OS, wrapping the native widgets and all their functionality. You would have to write your GUI once for each OS, but at least it would be native (and shameless

), and would be written in Java even if it were OS specific (I shudder at the [thought [of [more [ObjC:hell]]]]). If you don't want that, then go all emulated and put up with the imperfections.
These are two common approaches. They're both bad. One is great but too expensive for development, other one is heading to ugly application. If you need to choose from two bad options, use the third

It would be nice to mix the two approaches if you choose, which I guess is what you are proposing, but I'm not sure it is worth the effort and complexity for the API to hide the fact that you are going native. Give me flexible, reasonably cross platform emulation, or give me all the power of the native widgets.
You'll get both flexibility and power of native widgets including any platform specific details.