I wonder why not?
I once saw a spy movie, where they mentioned that the chance of a secret leaking out, increases exponentially with the amount of people that know about it.
The same can be said for coding. If I was to make a software that does one thing (i.e. display a rectangle), for one OS, for one hardware configuration, to be used by one single person, I'm pretty sure I could get it to work bug free.
The moment any of those parts becomes more complex, the chance for errors increases exponentially. So although we test every new release carefully, and are very cautious about making changes or adding features, there is unfortunately no way to ensure 100% 'bug free-ness' for every feature, on every OS, on every hardware configuration, for all users. We're sure as heck are trying though.
When you think about it, It's actually amazing we get it out the door at all
