i think the wrong idea is understood when it comes to developing applications. you have to keep in mind, application version changes happen for one of three, or all three reasons.
1. Feature additions
2. security fixes
3. upgrade paths
As an app developer ( in house, client specific ) i get this A LOT. We do mostly web apps, but the same system applies. Other technology increases just as fast as ours does. PHP, MySQL, Apache, Lightspeed, etc. When that happens, we have to make sure our applications are able to keep up, AKA run at optimal speed on these new systems, for example, we try to keep our php applications running on the latest version of php, at all times.
Our applications are not really that big, but usually require 3 - 4 people to work on them, when php releases a new version, the first thing we can do is read the php docs to see what's changed, ways to make our app faster, and provide better performance. In doing so, things get over looked. I may make a change to the way a password is stored when a new mysql engine is released, and even though I noted the code, and pplied the change log to the file, someone might come behind me and notice a better way to do it. I'll get notifed, i'l review, if the app still WORKS as intended after his fix, we have to assume he kew what he was doing. same rule applies to our IOS apps, and Android apps. However, when doing so, their will ALWAYS be things that get over looked. what YOU call a bug, WE call " by design" anything that happens with the app, happened for a reason, its my job to do the best to make sure it doesn't happen again, however, people will ALWAYS run my software on various versions of php, 5.3, 5.4, 5.5, 5.6, etc. Each of those versions may have removed a needed dependency for it to work properly. When that happens, they then open a bug report. It's nearly impossible to make it work with every version of php / apache /mysql available, which is why we have minimum requirements, just as apple does. My point is though, software is never done, it's never bug free, and it's never " completed ". Whenever something is added, or changed, it causes something ELSE to function differently ( almost always ). As a human, no amount of documentation can keep me up to par,and im sure the same applies to apples products. they are FORCED to release before everything works in order to compete with compeition, they can't release el captain for example with a broken piece of software so they launch it knowing it doens't work, knowing they will fix it, but it's still not really a " bug " per say. everything you use in OSX probably has a bug somewhere, but you may not be able to see it. Also, as a developer, we usually dont pride ourselves on user interaction, so this " bug" to you could simply be no more than someone in UX making a bad call!
Sorry for the rant.. i was bored.