Насколько я понимаю ничто о самом X11 не предотвращает многопоточные клиенты, это просто, что Xlib имеет некоторые условия состязания, которые просто не могут быть устранены. Я беру это от XCB, я не знаю на основе опыта. XCB является библиотекой Xlib-слоя, разработанной, чтобы использоваться с многопоточными клиентами. Так, похоже, что клиенты X11 склонны быть записанными как событийно-ориентированные программы псевдореального времени просто так. Нет никакой причины не сделать поточные клиенты.