This method doesn't use site content types (ContentTypeRef's), but instead it defines the content type directly on the list schema. A better practice (in my opinion) is to define content types separately and just reference them on lists. This allows for centralized management of content types.
As far as I've understood, referencing site content types does, however, add an undesireable side-effect: All fields from your content types that are included in the <ViewFields> element must be redefined in the <Fields> element, effectively doubling the already cumbersome process.