Questions:
- How would you perform a deep copy an EObject with all it references?
- How would you resolve all the proxies of an EObject?
- How would you find whether one EObject is a child of other (directly/indirectly)?
- How would you get the root containder of a given EObject?
These are common problems which you would face in your EMF code. Before you try to write the generic code using powerful EMF reflections, resist yourself. Somehow in between posting 5 millionth news group message and shooting 100k photographs (both the numbers are my guess, and true values should be more than that :-P ), Ed Merks finds time to do all that work for us. This nice solution, which is available in EMF itself: ECoreUtil.
Take a look at the other methods in the class. Will surely come handy sometimes.

