I did agree about not implementing 1.9 specific solution, but sort of know that Tim like to set fix version himself.
This is another approach to the problems that lead you to
MDL-20584. It can ensure that old quiz attempts will never breaks on question editing (thought some data may be lost or corrupted). First of all we should define exact interface of the function.
The reasons why I would have it implemented rather sooner than later are:
1) it is able to be used in any question versioning schema or without it, while right now question type could only implement a workaround that should be changed upon question engine editing
2) particular question types could implement it to a varying degrees (saving more or less data) and a good implementation for multichoice or multianswer is quite hard, this is not sort of thing you'd want to implement fast; so it is good to have a well-established point where such code could be created and improved over time while been safe from a changes of a question engine.
3) Implementation for the question engine part will be easy, for now I guess it can just call function on question saving (this can be changed later during versioning)
As of MDL-20570, it could probably be resolved only during Backup 2.0 Working with Moodle some time I come to conclusion that if you can, you should usually start active production using big new features only from the next version of the Moodle (i.e. roles from 1.8, gradebook and question sharing from 2.0 and so on). That way you'll have a good chances to avoid any serious trouble with it.