What is the reasoning behind me being able to downvote an answer but still accept it as correct?
This situation is 1) incredibly rare and 2) perfectly valid from a data integrity standpoint. Adding a feature to prevent this is unnecessary feature creep. This is the kind of complexity that you don't need in your system increasing your fault rates.
I'm sure there are plenty of other situations that "don't make sense" from a holistic, human point of view. Just because some of them are easier to implement than others doesn't mean we should implement them. The distinction between can easily implement and should implement is subtle but important. Further discussion is material for SO proper, not meta. :)
what is the reasoning behind being able to downvote a post yet still accept it as correct answer to my question?
"I already knew about this solution and I hate it. I was hoping for something better from the SO hivemind, but technically it is correct, and people who come on this question in the future may not have known about this correct (but horrible) answer, so it's best to implement it, mark it as accepted, and move on with my life."
It's also useful for those really hard bounty questions - you may have to accept an answer, even if it's not one you like or really agree completely with.