By Carl Howe
Rainer Brockerhoff has an excellent description of the obstacles and complexities of doing any sophisticated software update on the iPhone. His conclusion: Apple didn't intend to disable all old software, but they did need a known starting and ending point for the upgrade to work.
Those who imagine Apple conspiring against third party developers should try writing software that does in-place updates on a three-processor embedded system.
My own experience working on parallel processor operating systems says that multiprocessor software is always an order of magnitude tougher to get right; we shouldn't be surprised that Apple was conservative about how it went about it.