Writing an entire implementation of Bitcoin (even in SPV mode) is a ton of work. You should REALLY consider just using bitcoinj and finding a way to deal with the Java aspect.
I'm looking at alternatives to GCJ for using bitcoinj from native code, like transpilation into C++, but it would be a huge shame if someone ended up rewriting all that code just to avoid writing some binding/glue code. It would result in a lot of duplication of effort that slows everyone down. JNI is ugly, but there are tools that can write binding code for you.
You're right, and we're well aware of this, but we're looking for a clean long-term solution. I'd say we're far from
against trying to make bitcoinj work, but our resistance to that approach has more to do with the lack of a guaranteed JVM in Mac OS X. We could simply include it in the application package, but that is far indeed from ideal.
As we were saying on bitcoin-development, the idea of a transpilation sounds very interesting. No one on our side has ever tried to do something like that. If we can encourage you to put on your lab suit and give it a whirl, well... It would certainly not go unappreciated!