Can i expect ip (of ifconfig for that matter) across architectures and Linux flavours to have the same output format, such that i can reliably parse
Eu não faria. Embora ifconfig esteja morto e, portanto, não deva mudar muito, houve pequenas alterações aplicado por distros para manter essa ferramenta obsoleta funcional, já que muitas pessoas não parecem querer aprender a fazer a troca. A saída de ip
realmente não é ótima para analisar o IMO.
If not: is there another way to output an interface's IPv4 broadcast address in an more predictable manner?
Se eu fosse você, provavelmente procuraria instalar e usar uma ferramenta como o facter para fazer o trabalho para voce. Eu não acho que isso lhe dá o endereço de transmissão diretamente, mas deve ser trivial pegar o endereço / máscara de rede e executar a matemática para obter o endereço de transmissão.
Why is there no /proc/sys/net/...
O iproute2 se conecta ao kernel através do soquete NETLINK . O Ifconfig usa o método ioctl que está obsoleto. Se você deseja obter as informações corretas sem coletar a saída de algum programa de espaço do usuário ou instalar algo, será necessário usar uma dessas APIs.
Se você quiser, pode fazer algo como strace ip addr show
ou strace ifconfig
para ver a saída exata do que essas ferramentas estão fazendo para recuperar os valores.
Não sei a história do porquê, mas isso não é uma questão para este site. É assim que as coisas são. Se você quiser 'por que' vá falar com os desenvolvedores do kernel.