Да, приложения рисуют свои виджеты и окна, но не более того. В частности, они не знают, что другие приложения рисуют на экране.Каждое приложение сообщает оконному менеджеру, какие пиксели оно хочет отобразить на экране, а затем оконный менеджер отвечает за объединение этих пикселей для создания отображения нескольких приложений для пользователя, не требуя прямой связи между приложениями. Видеть https://en.wikipedia.org/wiki/Compositing_window_manager
Другая функция Wayland или X заключается в том, чтобы направлять пользовательский ввод (движение/щелчки клавиатуры и мыши) в правильное приложение. Без оконного менеджера каждое приложение должно было бы получать все нажатия клавиш, движения мыши и щелчки, а затем определять, был ли этот ввод направлен на себя или на другое приложение. Хотя с этим можно было бы справиться в наборах инструментов пользовательского интерфейса, очевидно, что эффективнее (и безопаснее) выполнить вычисление один раз в компоненте более низкого уровня.
На более низком уровне X и Wayland предоставляют абстрактный API для работы программ, а не низкоуровневый API отдельных видеокарт.
В качестве бонуса клиент-серверная архитектура позволяет нам запускать графические приложения через SSH.