I think all those competitors out there cloning your design ideas before your product even hits the market gives you an amazing opportunity to scoop them all -by recapitulating history in a way that makes a popular PC myth about cloning true for your iPhone.
The myth has two parts: that IBM created the PC, and that IBM intended it to be an open platform others could work with. In reality, of course, IBM was a johny-come-lately to the PC business and opening the thing to cloners took Compaq's lawsuit and Microsoft's bad faith decision to release MS-DOS separately from PC-DOS - but you knew all that already, right?
So the question is, have you thought about this with respect to the iPhone? Now I'm not suggesting you follow Sun's lead and open source your design - quite the contrary, I think industrial design is an Apple strategic strength and one you need to protect because it leads directly to strategic advantage.
What I think you should make openly available, however, is an interface specification for a capability that's not supposed to be there yet.
Let me explain: I see the iPhone as an interface connecting the user to the network; like this: (network <--iPh | one-->user) - and you see that little vertical bar in the middle? Imagine that's a third party device, something roughly the size of a Sony memory stick but with its own processor, memory, and embedded application.
Make that possible, publish the specification, and third parties will turn that iPhone into the basis for a whole new industry.
Why? because opening your iPhone would provide developers with a large market for products inheriting their power, user identity, network access, and user interface from your product.
For example? How about an electronic payments processor? maybe using one of the near field technologies? or how about laser spectroscopy for health or environmental monitoring? remote device activation? -doors, lights, Sun Rays, car engines?
One of my favourites ideas is to link the iPhone's camera to an object identification database - for example something that lets you recognise people at meetings and pops up their name, key biostats, and the context information you need to react to them as they expect. It's an interface using an interface that depends on an interface - I mean, how can that go wrong?
But wait, there's more - how about a whole set of ginzu knives? or, actually, a plug-in JVM done in hardware so your phone will run anyone's downloaded JAVA software? Way cool!