Não que eu esteja no negócio de defender a Microsoft, mas depois de ler os seguintes RFCs que tentam definir como as transmissões funcionam, não acho que a Microsoft esteja necessariamente violando qualquer RFC. Na IMO, o problema deve ser corrigido no nível do aplicativo (ou seja, transmissões direcionadas, não globais), que atingirá as rotas apropriadas na tabela de roteamento e será enviado apenas da interface correta para essa rede IP.
Ambos afirmam que não há um padrão definido para transmissões. Também menciona em 919 que uma interface física específica deveria ser selecionada para a transmissão. No caso de uma máquina multi-NIC multi-homed gerar a transmissão, eu não acho que é claramente indicado o que deveria acontecer. As transmissões nunca devem ser passadas pelos roteadores de uma interface para a outra, então a máquina do Windows é um roteador ou não, neste caso?
Se estiver agindo como um roteador, qualquer host que responda à transmissão com o endereço IP incorreto para essa rede (Adaptadores 2 e 3 no seu exemplo) deve enviar o pacote de volta para o endereço Ethernet dos Adaptadores. 2 e 3 em resposta ao endereço IP do adaptador 1 e o host do Windows deve rotea-lo para a interface apropriada. Isso soa confuso ... mas não consigo pensar em uma maneira melhor de expressar isso
E finalmente, o RFC 919 diz especificamente
De RFC 919
Since we assume that the problem
has already been solved at the data
link layer, an IP host wishing to
send either a local broadcast or a
directed broadcast need only
specify the appropriate destination
address and send the datagram as
usual. Any sophisticated algorithms
need only reside in gateways.
A leitura sugere que o endereço IP de origem é irrelevante para uma transmissão.
Como cada aplicativo parece lidar com difusões de maneira diferente, acho que é aí que reside a responsabilidade. Por exemplo. nbtstat
envia transmissões direcionadas em máquinas com vários NICs, enquanto os jogos podem usar transmissões globais.
Em suma, o aplicativo deve ser corrigido, não o sistema operacional, neste caso ...
EDIT: Aqui está um link para as mesmas circunstâncias, mas no Linux. O kernel do Linux lida com isso enviando apenas um pacote pela interface padrão (NIC A neste exemplo). Eles recomendam que o aplicativo enumere as NICs e envie uma transmissão direcionada para cada NIC. Link