Shouldn't example one be compliant?
typedef struct vector {...} vector;
The two vector identifiers are both referring to the same type.
You are correct, the first example should be compliant.
This will be corrected in a future edition or Technical Corrigendum