Fiz o exercício conforme o ensinado e o postado. Em ambos os casos, pude inserir um novo aluno sem receber UnsupportedOperationException, o código compilava normalmente...
Experimentei trocar o "return Collections.unmodifiableSet(alunos);" por "return (Set) Collections.unmodifiableCollection(alunos);", aí sim recebi a Exception ao adicionar um novo aluno.
Por que não recebi a Exception ao seguir os passos ensinados? Há problemas em usar o "(Set<>) Collections.unmodifiableCollection();" no lugar de "Collections.unmodifiableSet()"?