Cuándo usar llaves dobles {{}} en angularJS

Tomado de la documentación angular:

Expresiones angulares
Las expresiones angulares son fragmentos de código similares a JavaScript que se colocan principalmente en enlaces de interpolación como

<span title="{{ attrBinding }}">{{ textBinding }}</span>

pero también se usa directamente en atributos de directiva comong-click="functionExpression()".

Por ejemplo, estas son expresiones válidas en Angular:

1 + 2 a + b user.name artículos [índice]

Sin embargo, estoy un poco confundido sobre cuándo usar la sintaxis de llaves dobles{{}} y cuando no. La documentación parece sugerir que no los necesita cuando usa expresiones dentro de los atributos de la directiva (vea el ejemplo ng-click arriba).

Aunque el siguiente código que funciona ofrece evidencia anecdótica de lo contrario:

<ul id="Menu">
        <li ng-repeat="appModule in applicationModules"
            id="{{appModule.Name}}"
            ng-class="{ 'selected' :  selectedAppModule == '{{appModule.Name}}' }" 
            ng-click="menuClicked(appModule.Name)">
            <a href="#Content/{{appModule.Name}}">{{appModule.Display}}</a>
        </li>
    </ul>

Observe cómo en la directiva ng-class se usan llaves dobles y dentro de la directiva ng-click no.

¿Cómo sabes cuándo usarlos y cuándo no?

Respuestas a la pregunta(2)

Su respuesta a la pregunta