Hey, that's pretty slick! Especially if you're re-using questions. However, in my Survey application each QuestionGroup will belong to exactly 1 Survey. So all "children" will have exactly one "parent".
There is also a "Responses" table. When a response is inserted for situation "A" it will need the SurveyID, QuestionGroupNumber, QuestionLetter, and AnswerOrdinal. For situation "B" it will need only the AnswerID.
"B" would be handy for binding to web controls, but "A" would be handy for reporting.