Type annotations annotate a model element with a type term (either an edm:EntityType or an edm:ComplexType can be used as a type term). A type term implies that a type can be instantiated from the annotated element.
Currentlly the specifications allows to annotate the following model elements via type annotations:
edm:Annotations
edm:ComplexType
edm:EntitySet
edm:EntityType
edm:EnumType
edm:Function
edm:FunctionImport
edm:NavigationProperty
edm:Parameter
edm:Property
edm:ValueTerm
This should be restricted to the following two model elements:
edm:ComplexType
edm:EntityType
Reason: For all other model elements it's unclear/undefined how a new type can be instantiated from the annotated element.
If we just want to extend an existing model element with additional data we can annotate it with ValueAnnotations.