I have a “work in progress” patch that adds the ability to dock areas (move Blender editors to any location, including between multiple windows).
D14173 extends the “Join Areas” operator. You just drag out from a corner zone and you will be presented with multiple dock locations along with possible joins. A (small) downside is that we lose the ability to reverse join directions while mid-operation, but doing so also simplifies things since you are always operating on a single source area. Split Area operation changes so that it only do so on mouse release. This allows for seamless transitioning between docking, splitting, and joining and you should no longer get any accidental splits.
The following shows seamless transitioning between area joins and vertical and horizontal splitting:
The following shows how dragging with your mouse gives you options for joining and docking in multiple locations:
The following shows creating a new window by dragging outside the window:
The following shows moving areas between separate windows:
Note that I am looking for people to actually test these patches (this is the Development site after all) and to give very specific feedback that is related to these operations and how they could work within the current Blender interface. Comments like “This shouldn’t be so hard, just look at XY software”, or “here is a link about Visual Studio docking” are not useful. I know how docking works elsewhere, but I’m searching for an intuitive way to add this type of operation to our existing systems.
Note that there is also an alternative to this patch that keeps existing Split and Join as they are and instead extends the “dupli” operator (shift-drag from action zone): D14166.