El uso de filtro en el atributo directivo causa un bucle infinito en el ciclo $ digest

Un intento de usar un filtro en una directiva con alcance aislado:

<div tags="p.tags | refTags"></div>

Provoca un bucle infinito en el ciclo $ digest:

Este error se produce cuando el modelo de la aplicación se vuelve inestable y cada ciclo de $ digest desencadena un cambio de estado y un ciclo de $ digest subsiguiente. Angular detecta esta situación e impide que un bucle infinito provoque que el navegador deje de responder.

.directive 'tags', ->
    restrict: 'A'
    scope:
        tags: '='
    templateUrl: 'partials/tags.html'


.filter 'refTags', ->
    (tags) ->
        ['a filtered', 'array of values']

partials / tags.html

<ul>
    <li ng-repeat="tag in tags">{{tag.tag}}</li>
</ul>

p.tags en el controlador

p.tags = ['HTML5', 'CSS', 'JavaScript', 'Angular JS', 'Backbone JS', 'Node JS', 'SASS + Compass', 'Oragami', 'Running', 'Cat Food', '#catfood']

¿Es este comportamiento normal?

¿No se puede usar un filtro en un valor que pasa al ámbito aislado de una directiva?¿Hay una solución para esto? Necesito filtrar los valores de las matrices.¿Hay otra solución con un diseño diferente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta