Dois-je privilégier IEnumerable<T> ou des Tableaux?

Dans de nombreux projets, je travaille, à chaque fois que j'ai pour revenir en lecture seule collection, j'utilise le IEnumerable<T> interface et la rendre type spécifique comme suit:

Public ReadOnly Property GetValues() As IEnumerable(Of Integer)
    Get
        'code to return the values'
    End Get
End Property

La plupart du temps, je retourne une Liste, mais dans certaines fonctions et propriétés en lecture seulement je retourne un tableau qui sert également à bien grâce à l'aimable courtoisie de Méthodes d'Extension.

Ma question est suis-je en violation des principes de conception en retournant IEnumerable<T>s au lieu de types spécifiques (par exemple: List<T>, HashSet<T>, Stack<T> ou Arrays)?