I know you can write directives in a few different ways, but for readability and consistency I am a fan of the explicit return of an object. If I look at this, it's not immediately obvious if this is a compile, link or controller function.  I realize if I go look up the documentation, or know off the top of my head that returning a function in a directive equals a link function but I could be saved that extra time via the object definition.