Because I want to be able to inherit from non-codefirst templates. For instance: I added a ControllerRenderer model which refers to a built-in Sitecore template and then I have my own codefirst model which needs to inherit from that sitecore template.

Other than that: isn't the only thing we need the TemplateId anyway?