Esconder o elemento com o estilo display:none
ainda vai fazer com que ele seja escrito na tela (porém não visível). Acho que por questões de segurança o melhor seria remover de fato o elemento.
ShowIfLoggedDirective
...
ngOnInit(): void {
!this.userService.isLogged()
&& this.element.nativeElement.remove();
}
Dessa forma ainda evita da directiva ter que usar mais um serviço (Renderer)