So I think the next step is for someone
to dig into the code and find out exactly what the algorithm is in
Metacity, in Compiz, and in kwin (and ideally research what it is in
Windows and Mac OS X, too). Only then can we report informed bugs where
the algorithm isn't working properly, and only then can we make sensible
suggestions for how it could be improved.