open source tools using the gcc toolchain: [need project link]. also note that it requires downgrading to gcc 4.2
C++ Interface: Objective-C is the system language. so, it's not "natural", but it's been done [need source citation]
So my only choices for smartphone development are Objective C or Java? Seems like a lose-lose situation to me. Why can't I use native C or C++ on either of them?
You can use native C/C++ for both of them, except in certain places. The UI layer, for instance, has to be done using the native language on either platform (objc or java).