You can think of a bounty as contract between yourself and other StackOverflow users, with the following basic terms:
You promise to give one lucky user some extra rep in exchange for more attention for your question from the community as a whole.
There are obligations on both sides here:
The community will give your question more attention. This is not the same as the community promising to give you an acceptable answer. No one could promise that, because there might not even be an answer. The best we can do is attention, and you can see from average view counts and answer counts that bounty questions definitely get a lot more attention on average than non-bounty questions.
Your end of the deal is then to award extra rep to the one member of the community that most helped you during the bounty period. Allowing you to decide you didn't like any answer would in effect be allowing you to breach your contract with the community, and make the bounty feature as a whole much less useful.
That said, I personally would like to see bounties changed such that they no longer expire. Instead, when you accept an answer for your bounty you get back 50 rep. This rep should be cap immune like accepted answers. That would align incentives correctly such that you are strongly encouraged to accept your bounty as soon as possible.