The pro of user defined types is addressed quite well by Alex Papadimoulis. The cons have been well stated here.
I would also like to point out that the sp_bindrule
function has been deprecated, as noted by Alex's post. I'm not sure when it was deprecated but it is now. In fact, rules are deprecated as a whole.
Were I to want to create a type with a restriction, I'd consider using a user defined table type with a check constraint on the appropriate column(s). This also gives me a way of building a complex data type.