As a developer myself:
1. the more features you add in, the more code to make those features.
2. the more code you have - the more you have to release when you fix something. Yes it would be nice and I love it when I fix something and the fix was only contained in one program. However, 9 times out of 10... The problem is in one codeset, so you fix that - then you have to change another codeset to properly handle the old data and the new fix. Or, you have another program added in that automatically fixes the problems caused by the first bug.
3. Operating systems are very complex as you also have to take into account the applications running on them. you do not want to (or atleast try not to) release something that breaks other apps or causes other software companies to have major rewrites. thus sometimes the code is a little bloated to handle both the backwards compatibility as well as the new features. It would be nice for streamlined code but, as a developer; trying to be compatible with what is already there makes a lot of "IF x then y else z" statements; which then adds to the number of byes in a program.
Or in the case of visual basic on MS:
Case 1 <execute some code>
Case 2 <execute some code>
Case 3
All these case statements take into account coming across different scenerios.
Continuation of this post:
Also, if you have to write for different hardware (ie, tiger had 2 OS's one for PPC and one for Intel; leapord is one OS for both hardware) which means there are checks that "IF PPC THEN ....... ELSE IF INTEL THEN ........ ELSE CRASH IF HACK END IF"
or again in the case of MS Visual basic:
case 1 <execute code for ppc>
case 2 <execute code for intel>
Which means every fix requires double the code - fix needs to be in ppc portion and a similar fix needs to be in intel portion.
I can see where supporting intel only on 10.6 will reduce the code set, as all the code for ppc can be ripped out (if it was implemented correctly with bloated code, then it could be easily done). I know that is an oxymoron - correctly/bloated code. But then you could just take all the PPC specific code out.
And with all those whining about no longer supporting PPC? Well, it may be time for PPC users to move on. My old 486 ran linux fine, but was not supported by the major linux companies or MS. plus the new features would not run on the 486. What you are asking for is to have a 1960 muscle car (I used muscle car as PPC users tend to feel it had more power) to have AC, reclining seats, bluetooth for your phone, a multi-disk changer, get good gas mileage, but don't change the look or the feel of it being an original 1960 muscle car (every car company is trying to do that with the remake of the Ford Mustang, Dodge Charger/Challenger, and I think Chevy is in the process of doing the same). I think this is what apple is trying to do on Intel. give you all the features you want of today - but maintain the classic feel that users really want.