I don’t think it is common enough task for there to be generic recommendations in WordPress area.
Taking the more specific part of your question — manipulating template is certainly possible and quite common.
- Any template (being loaded in native fashion) will have to go through
- Results of single template specifically will go through
single_templatefilter before that.
At either point you could check for URL parameter and override the choice made.