Broadcast is bad. So bad it’s even been removed from IPv6.
Broadcast adds a lot of noise to the whole network - something that machines not running syncthing don’t care about. Especially in crowded/popular networks.
There’s no valid reason to use broadcast on the TCP layer any more, and multicast can perfectly cover the needs of local announcement.
multicast is ridiculously standard. Even stuff like mDNS uses multicast (that’s what the m is for). Do you have any citation on why it’s unreliable? I’ve used it every day during years to access hosts on my LAN (since discovery is done via mDNS).
I’ll repeat here what I just said in the ticket; search the forum. The current solution mostly just works. Using multicast didn’t. Android does weird stuff with it; firewalls handle it differently, etc.