Having been a software developer for 20 years I can tell you that having a system architecture that allows you to do anything and lets programs do anything is very flexible and cheap way to rapidly build up an application base (i.e. the IBM PC, DOS and Windows) BUT it also creates a world of pain, unstable systems, unsecure code and lack of consistent interface.
Apple have always controlled their systems and the software written for them. This approach has made the Mac and associated software more expensive initially but because it is more robust and consistent it has been shown to be cheaper to maintain and easier to use.
Of course society doesn't always embrace the best idea's, a simple factor such as cost, availability, market saturation, or a killer app can determine which company/technology gets adopted by the majority.
As for the phones, time will tell which platform becomes the dominant technology. I have recently purchased an iPhone, simply because I have an iPod and it was easy to plug it into iTunes and required no additional installations, it is simple to use and well supported.
P.S. I have never owned a Mac and my first Apple product was an iPod. I have developed software for Unix mainframes and mini's, and PC based systems (Dos, OS/2 & Windows).
Cheers,
Richard.