Sim.
É assim que o angular funciona.
Antigamente (logo após todos os dinossauros desaparecerem e um pouco antes dos smartwatches se tornarem a próxima grande coisa), o JavaScript discreto era considerado a coisa certa. JavaScript discreto ficava com sua prima, Aperfeiçoamento Progressivo, e os dois eram anunciados como a luz do mundo e o farol da bondade.
Havia uma razão para isso. Muitos usuários estavam usando navegadores com mecanismos JavaScript ruins ou talvez nenhum mecanismo JavaScript. Ou eles tinham o JavaScript desativado. Disseram-nos que a Web era principalmente para transferência de hipertexto e não devemos tornar nossos sites inutilizáveis para alguns, forçando o JavaScript sobre eles.
Da mesma forma, fazia sentido manter o JavaScript fora do HTML. O HTML deve ser mantido puro, pensou-se, porque o JavaScript foi algo que você adicionou posteriormente - se o usuário permitir. Caso contrário, pelo menos a marcação HTML refletia a semântica do que você estava tentando transmitir.
Essa não é a filosofia do AngularJS ou das diretrizes mais modernas de desenvolvimento da Web, porque as coisas mudaram. Quando usamos o AngularJS ou estruturas semelhantes, estamos usando a Web para fornecer aplicativos , não apenas texto e imagens. Os aplicativos da Web são inúteis sem JavaScript, e não faz sentido fingir o contrário. Portanto, eliminamos as amarras do aprimoramento progressivo porque (a) podemos confiar com segurança em todos os nossos usuários com o JavaScript ativado e (b) isso apenas nos atrasa.
Uma vez que não estamos fazendo o aprimoramento progressivo, por que o JavaScript discreto? Separação de preocupações é um conceito maravilhoso. Mas são seis de uma ou meia dúzia da outra: você tem HTML cheio de referências ao JavaScript ou JavaScript cheio de referências ao HTML (a maneira do jQuery).
Se você usa o AngularJS, em breve verá uma separação mais clara de preocupações em seu código do que em outros estilos de desenvolvimento da Web. Claro, existem referências às funções JS no seu HTML. Mas você pode facilmente mover o HTML sem se preocupar com a quebra de código, e seu JS é limpo, testável e não depende de um DOM muito específico. Isso permite reutilizar melhor a lógica comercial e reutilizar melhor o HTML.
Conclusão: não se estresse. Você vai se acostumar com isso rápido o suficiente. E não resista às coisas só porque você sempre disse que o outro caminho é o caminho certo.
Adenda
Se você sente que é importante para o seu HTML para ser compatível com o padrão, você pode usar o data-
prefixo de suas directivas angulares: ou seja, data-ng-click=
e data-ng-repeat=
e sua HTML será compatível com W3C. Pessoalmente, nunca me preocupo com isso, mas fazê-lo é inofensivo.