In principle, this sounds like a good feature to go into Moodle core.
It also seems like a potentially risky feature to implement, at least initially. Therefore, if it could be done first as a plugin that brave people could try, and only later go into core, that would be the best way to handle it.
You still have not convinced me there is any need to change the core question API to do this. Once you have the $qa loaded into memory, the performance difference of rendering part vs. all of the question is minimal, as is the HTML size of the rendered question. It is just so much simpler to use the existing rendering methods, and replace the entire out question div in the attempt page HTML.
It would be really nice (e.g. for reliability) if this could be done as progressive enhancement of the existing UI (which makes this very easy to do in a plugin, since it is just extra JavaScript). Modern Moodle JS is meant to do AJAX calls using web services functions, and the Quiz web service functions that were implemented to let the mobile app work should be sufficient for this. (Or, if not, enhancing them should be the only core changes needed.)
Those are just some thoughts, though not entirely random guesses, since I made offline mode.