Note that:
+------+------+
| | |
| | |
+------+------+
| | |
| | |
+------+------+
may represent two different structures: C-x 2 C-x 3 C-x o C-x 3
or C-x 3 C-x 2 C-x o C-x 2
But in both these cases:
+-------+--------+ +-------+--------+
| | | | | |
| 1 / 3 | | | | 1 / 4 |
| | | | 1 / 2 +--------+
+-------| 2 / 3 | | | |
| | | | | 1 / 4 |
| 1 / 3 | | +-------+--------+
| | | | |
+-------+--------+ | |
| | | 1 / 2 |
| 1 / 3 | | |
| | | |
+-------+--------+ +-------+--------+
the hierarchy of splits is the same, so I don't see why it should
balance differently.
I think a correct algorithm should recover the split tree, then make
the balancing depending on the window counts in subtrees.