I think these are really good ideas, I would however like to point out that anyone considering to implement this should take into account the fact that the use of such a facility could be greatly improved by trying to model as closely as possible existing peripherals, so that the code to address and control such virtual peripherals wouldn't become too simulator-specific, preferably it should be generic enough so that it's similar to real peripherals
I think these are really good ideas, I would however like to point out that anyone considering to implement this should take into account the fact that the use of such a facility could be greatly improved by trying to model as closely as possible existing peripherals, so that the code to address and control such virtual peripherals wouldn't become too simulator-specific, preferably it should be generic enough so that it's similar to real peripherals