Hm, I'm not sure about this - the Auto Increment line and the code you mention still allow the user to use autoincrement, notnull, etc. declarations from annotations and still use a customDefinition. I.e. you can use something like
@Column(name="name", type="string", columnDefinition="CHAR(32)")
and Doctrine will add a "NOT NULL" - as it is the default in Doctrine and it would be also added if there was no columnDefinition.
I did not find more details in the JPA specification or in its various implementation on what exactly the columnDefinition is used for - in my example only the type declaration would be replaced, in your example the whole definition would be replaced.
Not needing to specify things like auto increment in the custom columnDefinition would make it easier to automatically create foreign keys: e.g. if an ID field is created as "MEDIUMINT", this declaration can be copied to foreign key definitions that reference this field (see my second comment). If the ID's columnDefinition field includes AUTO_INCREMENT, this would be much harder...
What do you think?