Actually it should allow the operating system to run unsigned applications.
All the iphone applications have a certificate that is issued by Apple that certifies the integrity of application.. any modification to the original application would violate this certificate making it impossible to run: the OS refuses itself to launch it. This applies also to unsigned applications..
when you jailbreak the iphone you basically bypass these checks allowing it to run whatever you want. This is a two-sided blade: it's very restrictive (Apple style) but forbids the execution of malicious software, since it won't get signed.
The official reason of doing it this way is to avoid things as:
- using forbidden/untested capabilities of the SDK (like hidden APIs)
- controlling what will run on iphones
- be sure about having applications without gargantuous bugs
- be sure about having applications that don't clutter the iphone itself (memory leaks, uncontrolled CPU at 100% and so on)
Also the refuse of multitasking has these reasons, they needed a lot of time to develop a fake multi-tasking (that will be the one shipped with OS4) that is a sort of managed one: forget about having real background processes.
A side note: as a iphone developer you should have noted that you have to generate a certificate with your apple identity to allow testing of your apps on your device, that's part of this tale..