Situations where they are useful:
Grouping commonly used attributes (e.g. the events attributes from XHTML).
Grouping definitions so they are always the same.
Reusing an attribute declaration without making the attribute global (an important distinction).
Keep in mind:
This is a schema-side definition.
The instance doesn't look any different than if you had declared the attribute inside some complex type.