Risposta breve (ma inutile) alla tua domanda: No, in generale non rompe lo "scope".
Come per tutto il resto, ci sono casi in cui forzare l'immutabilità è buona e casi in cui non lo è.
Alcuni casi sono più neri o più bianchi di altri, naturalmente. Il tuo esempio è un candidato per quando potresti non voler forzare questo sull'invocatore. Tuttavia, potresti restituire una raccolta e, sebbene solo creata localmente, potresti avere un caso in cui questa raccolta è una bestia costruita a mano per scopi speciali. E quella bestia sembra avere prestazioni pessime quando la modifichi, quindi potresti voler proteggere i tuoi utenti dal dover conoscere questo fatto semplicemente proibendo le modifiche.
Come sottolineato da @Bwmat, un altro scenario tipico sta fornendo l'accesso a una collezione di attributi membro. Normalmente, non vuoi che cambi al di fuori della tua classe, quindi ti inclini all'immutabilità. Ma neanche questo è un proiettile d'argento. A volte i chiamanti eseguono un thread diverso e semplicemente iterando su quella raccolta può causare una ConcurrentModificationException, quindi si decide di restituire una copia. In casi ancora più rari potresti persino sentirti obbligato a restituire la collezione vera e propria (anche se ora è un'area maledettamente buia).
Come puoi vedere da questi esempi, la discussione include spesso i comportamenti di entrambi i lati - il lato del dichiaratore del metodo e il lato del cliente. Il termine ambito del metodo usato nella tua domanda è ambiguo e potrebbe essere alla radice del problema qui.
Abbiamo l'ambito del metodo rigorosamente lessicale utilizzato nel dominio del compilatore. È la parte del tuo codice in cui gli argomenti e le variabili locali del metodo sono accessibili. Ovviamente, questo ambito non è inteso qui, dal momento che guardare il metodo chiamante è chiaramente al di fuori di esso.
L'ambito del metodo di un metodo di interfaccia si estende ben oltre a tutti i punti in cui il programma di caricamento classi può potenzialmente accedere all'interfaccia. In altre parole, fa parte di tale ambito considerare gli usi di invoker del tuo metodo e i suoi valori di ritorno.
Infine, puoi definire un ambito completamente diverso per il tuo metodo nell'area del tuo dominio problematico (come nel "scope tokenization scope") e potresti venire a un'altra soluzione su quale dovrebbe essere il miglior tipo di ritorno.
In sintesi, tieni presente che lo ambito del tuo metodo in realtà significa per te e il tuo team e, come al solito, soppesare i pro e i contro di ciascun approccio all'interno di tale ambito.