I don't think there is anything inherently complicated about creating Xcontrols any more than creating a class. The issue is though, is that you cannot inherit from a pre-existing control (class?). This is what makes it not worth the effort since even for a simple control (a numeric for example) all the existing properties and methods have to be re-written Instead of just writing the additional functionality.
Therefore you don't write all the normal properties and methods for that control type and end up with a specialised control, with limited functionality, which is only useful to you ( and even then, probably in only a couple of scenarios). However, if you could inherit all the properties and methods from, say, an x-y graph and just add a bit of code to add a trend-line. then that would be worthwhile.