Certainly, there are no absolutely right Software. They always has or hide some bugs.
But we can reduce the number of bugs or make it close to the 100% correct, by means of doing more testings, employing more excellent/seasoned engineers, or follow more formal/strict process...

I'm not sure exactly what you're asking, either, but here's a thought: Most developers I've met want to produce the highest quality software possible, but in practice, the level of software quality for a given project will depend on the risks involved and the cost of failure.

Consider the specific quality problem of an application that occasionally crashes for no immediately apparent reason. If this application is, for example, a simple image viewer, the worst thing that can happen is the user has to take a minute or two to restart the viewer. On the other hand, if the application is an embedded control system for a NASA space probe, a software crash could send it flying into the sun instead of into orbit around Mercury.

Of course, you'd want to fix the crashing problem in both cases. If the image viewer project was on a tight schedule, though, it is plausible that it could ship with the bug (Microsoft and Adobe products come to mind)--but you can bet your ass the space probe launch would be delayed until they fixed it.