That's the way it is with any optional X11 or Wayland extension. Either you implement the extension yourself, or you use a library to implement it for you. Typically the code to do this is put in a toolkit, but you decided to write your own toolkit so you get to deal with the annoyance. Nothing's changed in this regard. Actually, most optional things in Linux are like this and it's been this way since shared libraries were implemented. If you find the idea of this so off-putting, maybe you should be using a pre-made toolkit instead of writing your own?