IIRC, you can take the coercion rules for GooglePrimaryEmail and specify them for Maybe[GooglePrimaryEmail], but using a union saves you from defining your coercions twice.
Comment on Re^5: MooseX::Declare and undef attributes - MooseX::UndefTolerant not working