Xtypes can be (as usual) a useful thing ... or not.
If you (a) might create a bunch of instances of "a thing," but (b) don't really know if you're going to need to do so or not ... then XTypes might well be the cat's meow.
When you declare an XType, one instance of the object is always created so that it can be associated with the type-name in the hash. The benefit then comes from being able to coin any number of copies of that object, just by cloning what is already in memory.
This is not the same as a system which would create the first object-instance only on-demand.
It is, therefore, "a practical system, but not entirely without cost." Know how it works, then "ask your doctor..."