Reporting on a normalized Key-Value pivot
A friend offered me this solution, although he doesn't have an account for SE.  

Note from 2 years later: This provides the number of times each answer occurs per question. Which is kind of helpful, but doesn't tell us, "what are all of the questions and answers given on this one survey submission?" Maybe I should have emphasized that 'ResponseValue' can be free-form text.

SELECT SIK.Name AS [QuestionKey], SIV.JsonValue AS [ResponseValue], COUNT(SIV.Id) AS [Frequency] 
FROM [Surveys] S 
JOIN [SurveyInputKeys] SIK ON SIK.SurveyId = S.Id
JOIN [SurveyInputValues] SIV ON SIV.SurveyInputKeyId = SIK.Id
WHERE S.Id = @surveyId
GROUP BY SIK.Id, SIV.JsonValue, SIK.Name


Psuedo-output...


   SurveyId    |   QuestionKey   |   ResposeValue   |  Frequency
      1        |   Best Singer   |     "Adele"      |     5
      1        |   Best Singer   |   "John Doe"     |     2
      1        |   Best Singer   | "Free Form Text" |     1