Eu percebi isso. Não é de surpreender que eu tenha interpretado mal o relatório, e não o Google, que estava errando a implementação do DMARC:)
O resultado do SPF na seção de política avaliada pela qual eu estava sendo confundido (cópia postada no OP) é o resultado do SPF avaliado pelo DMARC após considerando o alinhamento.
Esta citação aqui explica a questão:
Please note that the SPF and DKIM results in the auth_results are raw results, regardless of Identifier Alignment; he results of the DMARC evaluation with Identifier Alignment are in the policy_evaluated section.
Eu verifiquei o resto do registro e descobri que os resultados raw para o mesmo registro foram, corretamente, SPF.
Então, o que o relatório DMARC estava me dizendo era que, embora o resultado do SPF fosse de outlook.com (e, portanto, era um 'passe' bruto), o cabeçalho do caminho de retorno não correspondia ao meu domínio de envio, que produz um DMARC avaliação falha do SPF. Outra referência aqui .
Basicamente, não tente ler os relatórios XML diretamente - eles são difíceis para os humanos! Encontrei este DMARC analisador xml que faz um trabalho fabuloso de permitir que você veja claramente o que o relatório DMARC está tentando lhe dizer.