Eu simplesmente esqueço a configuração padrão e começo a definir as coisas por conta própria. Então, indo nessa rota:
myLayoutHook = avoidStruts(smartBorders(ThreeColumns ||| Circle ||| Grid ||| ANY_OTHER_LAYOUT_YOU_USE)
main = do
xmonad $ desktopConfig
{ layoutHook = myLayoutHook
...
Isso também tem avoidStruts
, que parece ser o que você quer quando diz que quer manter a configuração existente. smartBorders
é outra coisa legal que oculta a borda quando não é necessária, por exemplo, quando você tem apenas uma janela em uma tela.