Unity has a free version and you can first develop with it, then buy a license. Productivity is more valuable than the license price, and Unity is a productive framework.
The price for MonoTouch is something like $399 for a single developer ... which is really not that much considering that you already paid for over-priced hardware.
All of them provide an easier path to developing for the iPhone when you're not used to ObjC / Cocoa and all of them enable shared business logic if you want to go multi-platform.
Apple already makes it clear they want to ban these framework. It's like a bank that has the right to take your house (according to the contract you agreed to) but it may take some time before it does it ... if it's in the contract and you don't do anything about it, then it's only a question of time. That's how things work ;)