E de qualquer maneira, nem sempre é tão simples. Uma evidência anedota pra você: Eu tenho que recompilar meu kernel para instalar os módulos da webcam. Difícil não é, só que é chato. Eu preciso de um sistema produtivo e não de um sistema que precise de minha ajuda pra funcionar. Como o Spitfire brilhantemente disse: isso é masturbação mental.
Isto varia de acordo com a distribuição que você usa. Quem usa distribuições mais tradicionais como Slackware, Gentoo, realmente é necessário, já o Ubuntu por exemplo vem com todos os módulos de Webcam habilitado no Kernel, assim como todos os suportes necessários USB para Linux.
Aliás, algo que eu queria entender é você criticar a falta de praticidade do Windows em ter que reiniciar em alguns poucos casos de instalação de alguns periféricos, mas não criticar a falta de praticidade do Linux em ter que recompilar o kernel, ou o saco que é para procurar as dependências de certos programas, ou então quando o programa X não fica disponível para sua distribuição Y, e então você tem que gerar pacotes binários compatíveis (caso você não goste de usar o make install no seu sistema), tal como o makepkg do Slackware faz.
Não são só alguns periféricos, está esquecendo dos drivers? Ok, eu não tinha tocado neste ponto mas como você citou, creio que entenderá.
O fato de precisar reiniciar o computador quando se instala alguns periféricos ou drivers é uma característica do Windows. Esta característica se deve ao fato de você saber muito bem que o Windows não tem suporte à módulos como acontece no Linux ou FreeBSD.
O fato de precisar recompilar o Kernel também é uma característica do Linux para que seja possível adicionar/remover suportes que você precisa ou não usar.
Isto são duas características íntimas de cada SO, o que fazer então? Vejamos a diferença e o lado positivo e negativo dessas diferenças.
No windows você nunca conseguirá mudar isto, pois o sistema é fechado e você não tem o código fonte do sistema por mais que seja um excelente programador. Certo? Isto é fato. O jeito é aceitar ter de parar de fazer algumas tarefas para que o sistema seja reiniciado para que seja ativada as modificações. Isto fruto da arquitetura atrasada do Windows igual à seus irmãos anteriores: Windows 95, 98, ME, 2000, etc..
Já no Linux por ser não ser um sistema único, ser somente o kernel, existem vários sistemas Linux, e com isto você pode fugir dessa necessidade de compilação case use o kernel que vem na distribuição. Exemplo disto é o Ubuntu que supriria a necessidade de se recompilar um Kernel para que seja adicionado um suporte de Webcam, (ele já vem com tudo habilitado nesta parte) por exemplo.
O que a compilação traz de benefício? Enquanto o fato de ter que se reiniciar o Windows não traz nada de bom, o fato da compilação de um kernel é simples:
O direito de adicionar ou retirar suportes do sistema que você não necessita, deixando o sistema mais leve, rápido rubosto e estável, um fato que não acontece no windows: você é obrigado à aceitar o sistema PESADO e inflexivel como ele é.Compreende? Eu não tinha citado o fato da necessidade da recompilação de um kernel pois no Linux você pode fugir disto usando uma distribuição menos tradicional (como eu já citei), e mesmo assim, se você usar uma distribuição mais tradicional, o fato de recompilar o kernel RELACIONANDO-O com o fato de precisar reiniciar o computador no Windows para que uma mudança seja efetuada, tem algumas diferenças muito significantes:
No windows, isto ainda é uma característica de um sistema com uma arquitetura atrasada, no Linux, isto não representa atraso nenhum, mas simplesmente o DIREITO de adicionar/remover suportes que você não precisa. Isto é típico de um sistema aberto e moderno. Pena que o Windows está cada vez mais pesado devido à má escolha que m$ fez no passado em investir no DOS.
Novamente comparando o Windows e o Linux em uma característica (que o Oceanos citou), o Linux novamente ganha em benefícios.
Isto é religiosidade? Não, isto é fato.
ou então quando o programa X não fica disponível para sua distribuição Y, e então você tem que gerar pacotes binários compatíveis (caso você não goste de usar o make install no seu sistema), tal como o makepkg do Slackware faz.
É, caso o programa não esteja disponível para sua distribuição, você tem a opção de compilá-lo. Para alguns, ouvir esta palavra "compilação" é um pesadelo. Observe como compilar um programa típico de um pacote tarball é "difícil":
./configure
make
make install
NOSSA! REALMENTE! ISTO É MUITO COMPLEXO HEIN? EU NUNCA TERIA MEMÓRIA PARA DECORAR ESTES FABULOSOS COMANDOS! Tirando a ironia, isto é muito simples e fácil.
Com relação à algumas dependências necessárias na hora da compilação, basta usar-se o apt-get do Debian e distribuições clones da mesma, caso quem use slackware (eu por exemplo), use o slapt-get para conseguir os programas. Não me lembro quem mas no tópico: "Linux: Aprenda a usá-lo" fizeram uma crítica afirmando que o apt-get não funciona bem nos casos para conseguir o programa, afirmando que o sistema apt-get não funciona bem por mudanças na localização dos arquivos que baixam da internet.
O sistema apt-get é um sistema sempre atualizado, aderindo novos programas e novidades nos servidores, caso mude a localização de alguns arquivos nos servidores, isto se corrige com o "complexo" comando:
apt-get update
Isto atualiza a lista de pacotes disponíveis nos servidores. O sistema apt-get funciona muito bem.