I agree that compile is just an optimization technique, but there are more uses for it than directives that collaborate with ngRepeat.

* First use case is primarily a performance booster.
* Second use case is for returning conditionally structured link functions, throwing errors which terminate the directive, or utilizing any other conditional logic based off of the pre-interpolated DOM.
* Third use case if for doing DOM manipulation based off of values that will never be interpolated. This is very important and is alerted about just a few lines below this, which is why I placed it last.

All of these are for optimization, so if anything the word optimization should be used to describe compile.