でもGUIって副作用が必須だから(例えば入力に応じて画面が変わるとか
resizeとか)副作用を伴うパターンがたくさん出てくると思うのだが。

例えば、製図ソフトで図形を追加したり削除したり接続を変えたりすると
そのたびにObserverやMediatorの接続関係が変わったり、個々のオブジェ
クトの内部状態が変わったりするよね。

純関数型言語はGUIに向かない?
あるいは、インタラクティブに何かを編集するという用途に向かない?