The Q2A approach is definitely to fetch it from the content array.
Bear in mind not all pages have a postid, so qa_get_active_postid() would only make sense in the context of a question view page. It seems to be a bit overkill to do so. Furthermore, Q2A would have to preload a global variable whenever a question view page is displayed with the given post Id. Something like the qa_request() function, which is a code smell, as most (if not all) global variables.
Following the suggestion in this answer you could still add those functions to a helper. You would receive the $qa_content array (always) and you would just return the post Id applying the logic you mentioned in your question.