I still think that the overhead of an extra call makes the code more readable and it's worth it in the long run. Still the nillable is not a property of the type of the element but of the element itself.
Please leave the create word in "createXQTypeFromElementName", these methods have side effects they aren't just simple gets and I think a good name should tell this. A more correct name for this method would be: createXQTypeFromElementNameAndGetNillable. But I still think makes more sense to have them separate and leave the compiler do the optimizations for this case.
At least leave createXQTypeFromElementName name if you think the first part has a significant effect on performance.
I still think that the overhead of an extra call makes the code more readable and it's worth it in the long run. Still the nillable is not a property of the type of the element but of the element itself.
Please leave the create word in "createXQTypeFr omElementName" , these methods have side effects they aren't just simple gets and I think a good name should tell this. A more correct name for this method would be: createXQTypeFro mElementNameAnd GetNillable. But I still think makes more sense to have them separate and leave the compiler do the optimizations for this case.
At least leave createXQTypeFro mElementName name if you think the first part has a significant effect on performance.