It is quite a limitation that you can’t switch scene without switching the contents of the Sequencer too. If this was possible you could use the sequencer to switch cameras and scenes in the 3d view, which would be very useful for ex. grease pencil or animatic storytelling.
As I understand it, is one of the reasons for the Sequencer being inside scenes is that the render settings also are nested inside the scene data structure, but instead of moving the entire Sequencer data outside of scenes, maybe just the content of the sequencer could be converted into data-blocks, like the texts in the Text Editor, the images in the Image Editor, or the videos in the Movie Clip editor. If this step is too complicated maybe the content of the Sequencer could be set up as a override function, where a dropdown could be used to determine the current sequence and not change, when changing scene.
Codewise I guess the VSE copy/paste code could more or less be mirrored, so users could load/save the sequencer contents(all strips “copied” and then saved), or “paste” (all edited strips data loaded from disk and “pasted” into the sequence).
The dropdown(like the data-block selector in the Text Editor header), should contain a Current Scene setting, so everything will work as it is now, but if a new sequence is added or loaded, the Current Scene edited sequence data would be stored in ram, so the selected edited strip data can replace it. The same thing would happen when changing scenes, if Current Scene isn’t selected in the dropdown, then selected edited strip data will override it, while the current Scene contents is saved in ram.
I don’t know if this will solve the recursive problems of rendering 3d view scene strips of the current scene, but basically Blender could work around this when rendering, by always copying the current vse scene to a new scene only used for rendering and delete it afterwards.