qt is basically a widget library which requires good understanding of c++
So ... Xlib just comes naturally? If I had to choose between Xlib and a higher-level API which also has the benefit of being portable and being much better documented and which is not prone to possible succession by a new window system in the foreseeable future (namely Mir and Wayland), I'd choose the higher-level API.

including inheritance, virtual functions and all that stuff.
You don't need to be a rocket scientist to understand how to use a to draw on a QPaintDevice. It's fairly straightforward and the documentation is awesome.

i would not recommend making students learn how to use it if you just want to make them draw something
If they are being taught C, why would you not go to basic C++? And if they're going to use Xlib they're going to do it in C. An introductory course in C++ is definitely enough to do simple Qt stuff.

i wouldn't use it for an application that does not have a GUI with at least one button.
So, QGLWidget, which is even more convenient than FreeGLUT, shouldn't be used just because you don't use the majority of the lib? What about all the stuff Qt offers that has nothing to do with GUIs, like XML parsing or filesystem access, or networking, or more basically QString? That argument doesn't hold - at all.