In a situation where you are trying to use some project that hasn't released for a long time, it is worth looking at the project mailing lists.
Here's an archive for the "fop-dev" mailing list. First, note that the mailing list is active. Lots of postings. Second, if you look at the mails for July 2010, you will see that they have voted to accept the FOP 1.0 release branch. I'm not exactly sure what this means, but I suspect it means that 1.0 is going to be released really soon.
On your general question as to whether to use the GCC native compiler, there is no particular reason not to. But there is also no particular need to do so, and no particular reason to suspect that it would help. I personally prefer to use Sun's JVMs. And it sounds like you might be making life difficult for yourself by trying to get rid of runtime dependencies on a Sun installation.
EDIT
I'm not convinced that the "dependency hell" is that bad. On the one hand, you (as the primary developer) should be able to figure out certain combinations of versions of the components that work. Then you say "these are the versions that we recommend / support". If people want to use different combinations that is their responsibility.
On the other hand, if you use Maven as your build framework, then the dependencies are explicitly declared in the project POM files. If you make sure you publish to a public repository, and that your published artifacts only depend on properly released / published 3rd-party artifacts, then your customers should not have any difficulty either building your software directly, or downloading via the Maven repositories. And if they want to tinker with the dependencies, they can do that.
EDIT 2
Using GCJ as a way to prevent users from screwing up the dependencies is (IMO) a bad idea. By using GCJ to hard-wiring the dependencies into the binary distribution you limit the user's ability to "tinker". And with FOP-based applications, the ability to tinker seems to be rather important.
(And the fact that GCJ apparently causes FOP to break is yet another pragmatic reason to just use a regular Sun Java.)