I'd say that the overall number of bugs/lines of code is decreasing, but there are a lot more lines.
A lot of the speed increases are consumed by ever larger data structures. The more flexibility you allow in your data, the faster it is to code your program, but the slower the program is to run. There's also the bells and whistles. Most of these don't necessarily slow down the systems, but a few require that they be run continually or are used constantly, and can severely slow down the software.
The reason for this featurism is marketing.
Of course, most software written is *not* off the shelf, but cusstom code for special purposes. I imagine that faster PCs have meant that it's a lot cheaper to do fairly large data processing.
--
-------------------------------------- John Kawakami work (10am - 7 or 8) 818-385-2048 home (9 pm - 1 am) 818-543-0864 johnk at cyberjava.com, johnk at firstlook.com