Dynamic ecore is another use of the technology which is related to MDD.
This is model to model transformation but certainly not agile. Agile is
composed by all team members architects, modelers and developer and not
just architects+modelers. A developer will always code and his job should
be in the agile iteration.
If the java code contains the model information then it is impossible to
guarantee that refactoring will not erase the model. This is definitely a
bad practice.
I agree with you that Java source code doesn't have enough information and
should be extended. The extension should be a Java to UML Ids merge and
not an annotated model information in the Java code. Java Id and UML Id
are used together but all the information should be in the model and not
in the java code.
When you say "And how did you get your UML IDs in out and out of your Java
without getting the Java dirty?" Please not that we don't touch the java
code but upload information into the model. This is the Java to XMI
mapping approach which is the only possible modern modeling usage with an
agile methodology.