On the semantic expressiveness of recursive types