The awake method is quite useful in a multitude of ways. It's a fire once method that runs before any fire multiple method, and is a good place to have a behavior validate its properties and set itself up before another behavior tries to interact with it.
This doesn't mean it has to fire right when awake is called normally in Unity, just before any other method has a chance to actually interact with the behavior, including OnEnable, which is a fire multiple method that happens before Start.