Например, когда пишешь PropertyDrawer. В этом случае методы GUILayout не работают вообще.
Или когда необходимо рисовать элементы поверх друг друга. Думаю, этого можно добиться используя GUILayoutUtility.GetLastRect + GUILayout.BeginArea/EndArea. Но мне жаль людей, которые будут поддерживать этот код.
Как я перестал беспокоиться и начал резать прямоугольники в Unity правильно