O AppArmour é geralmente considerado mais simples que o SELinux. O SELinux é bastante complexo e pode ser usado até mesmo em aplicações militares, enquanto o AppArmour tende a ser mais simples. O SELinux opera no nível do i-node (ie restrições são aplicadas da mesma forma que as permissões ACL ou UNIX - por outro lado) enquanto o AppArmour se aplica no nível do caminho (ou seja, você especifica o acesso baseado no caminho para que não seja aplicável ). AppArmour também pode proteger subprocessos (como mod_php apenas), mas eu sou de alguma forma cético sobre o uso real dele. O AppArmour parece encontrar seu caminho no kernel principal (está em -mm IIRC).
Eu não sei muito sobre o SMACK, mas parece simplificar o SELinux a partir da descrição. Há também RSBAC se você quiser ver.
O chroot tem um escopo limitado de uso e eu não acho que seria muito útil em um ambiente de desktop (ele pode ser usado para separar daemons do acesso de um sistema inteiro - como um daemon de DNS).
Com certeza, vale a pena aplicar hardening 'genérico' como PaX, -fstack-protector, etc. O Chroot que você pode usar quando sua distro suporta também o AppArmour / SELinux. Eu acho que o SELinux é mais adequado para áreas de alta segurança (tem um controle muito melhor sobre o sistema) e o AppArmour é melhor para um simples endurecimento.
Em geral, eu não me preocuparia em endurecer muito o desktop genérico, exceto desligar os serviços não utilizados, atualizar regularmente, etc., a menos que você trabalhe em uma área altamente segura. Se você quiser proteger de qualquer maneira, eu usaria o que sua distro está suportando. Muitos deles para serem eficazes precisam do suporte do aplicativo (para ferramentas de compilação e.x. para suporte a atributos, regras escritas), então aconselho usar o que sua distro está suportando.