Pessoal, errei a questão. Mas, é bom para aprendermos!
O CESPE deu a ideia de obrigatoriedade mesmo ao empregar o verbo "OCORREM em diferentes máquinas". E é isso mesmo pois a questão se refere a arquitetura 3 camadas (three TIER) e essa arquitetura prevê a separação física entre os seus componentes, mesmo! O PONTO vem da diferença sutil entre Tier e Layer! Se a questão tivesse colocado 3-Layers aí sim a mesma estaria errada, pois estaria falando de separação lógica.
"Tier" = Separação física em camadas.
"Layer" = Separação lógica em camadas.
Segue a excelente explicação sobre essa diferença sutil encontrada em (http://csharpbrasil.com.br/csharp/n-tiers-n-layers/):"Hoje vamos esclarecer a diferença entre n-tiers e n-layers, algo que causa bastante complicação, principalmente quando estamos lendo livros técnicos traduzidos do inglês, no qual ambas as definições são tratados como “camadas”.Physical tiers (Camadas físicas) definem apenas aonde o código vai rodar. Especificamente, tiers são os lugares onde as layers são implantadas e onde as layers são executadas. Em outras palavras tiers é a implantação física das layers."
Logical layers (Camadas Lógicas) são apenas uma forma de organizar seu código. Camadas típicas incluem negócios, apresentação e dados – o mesmo que o modelo três camadas tradicional. Mas quando estamos falando sobre layers, estamos falando apenas da organização lógica do código.
De nenhuma maneira é implícito que essas camadas podem ser executadas em computadores diferentes ou em diferentes processos em um único computador, ou em um mesmo processo em um único computador. Tudo que estamos fazendo é discutir uma forma de organizar um código em um conjunto de camadas definidas pela função especifica.
Referência: Rockford Lhotka, Should all apps be n-tier?
Espero ter contribuído!