Although I want an API as much as the next guy (or more), I have had some great success writing applications using joe hewitt's IUI for iphone. One is a new interface onto an old web-based program i wrote to see my list of dvds. Other than the occasional lag, it looks and feels just like a built-in app. I can even pick any actor from my dvd collection and get his "bacon distance"
I also wrote a game (based on tic-tac-toe). When i first started coding for pocket pc, this game was the first I wrote, and when i switched to palm it was the first program i rewrote. In this case I wrote it entirely in javascript, so it can live in the iphone cache and no network connectivity is necessary to run it. It has all the features, animations, etc. of the game on the other two platforms, and performance is comparable.
Now, I'm not claiming that web programming is an acceptable solution, but at least it's not as horrible as I was afraid it would be. Joe did a fantastic job with his stuff.
The big problem (aside from an inability to access important phone features like the contacts/calendar database, camera, multi-touch, etc.) is that there is no revenue model for 3rd-party developers. With downloadable software, you sign a deal with handango, and all your costs are up front. With the web software, you have to pay for the server forever. And who wants to use software with ads on it, especially when your screenspace is so limited?
I'll just keep hoping an actual API is coming at some point. But I still bet they sign deals with some of the game makers, etc. for software that you can download from itunes, and keep the API otherwise under wraps.