Você está confundindo as coisas um pouquinho. Quem protege ou não recurso é sua API do seu servidor. Angular segue o status code que sua API determinar. É o seu server que orquestra isso.
Você está comparando uma SPA com uma aplicação Web tradicional, são coisas totalmente diferentes. Em SPA seu servidor fornecesse uma API para ser consumida por uma aplicação Angular, Android, IPhone seja lá qual aplicação for. Sua API é agnóstica de tecnologia de view e sua apenas o protocolo HTTP. Não é raro alunos criarem blogs ou outro tipos de aplicação que não faz muito sentido usar Angular.
Bom, vou me ater ao que você quer fazer para não entrar em questões arquiteturais que fogem do foco.
No curso de MEAN você viu que no JWT você pode colocar qualquer coisa no payload do token. Certo? Lá você pode colocar, por exemplo, alguma info para dizer se o usuário tem acesso ou não aquela ou essa página (parcial, para ser mais correto, porque página é a mesma durante toda aplicação). Daí você pode acessar quando o módulo de rotas processar a página, algo assim:
angular.module('moduloQualquer', [])
.run(function ($rootScope) {
$rootScope.$on("$routeChangeStart",function(event, next, current){
console.log( next.templateUrl) // mostra a view que quer acessar
// acessa seu token aqui e faz alguma verificação.
});
});
Com isso você tem um recurso análogo ao que você já usou lá no seu backend feito em Java.