Ao executar o código, ele compila e o resultado é de fato Maria**. O que ele marca como correto é que o resultado é Mario**. Eu entendo que a justificativa está correta em relação a String ser imutável, mas a justificativa correta está na resposta errada.
Fiz um código pra entender porque é imutável, mas se executar o código, a resposta vai ser Maria e não Mario:
String nome = "Mario";
System.out.println(nome);
System.out.println(nome.getClass().getName()+"@"+Integer.toHexString(nome.hashCode()));
nome=nome.replace('o', 'a');
System.out.println(nome.getClass().getName()+"@"+Integer.toHexString(nome.hashCode()));
System.out.println(nome);