I have seen an implementation of SharePoint list definition, where the developer declared the definition of the content type again inside the list definition, when I asked him why it's like that, he said that it's better in case if the content type on the site was change or the structure was changed, this won't affect the content type in the list.
But wouldn't changing the content type in the site and choosing update child content types will change the content type inside the definition as well? So what's the use of declaring it again?