why does the network allow any node to broadcast a transaction or a block, only to one node?
The Bitcoin network is a set of computers that communicate over the Internet using the Internet Protocol (IP) and the Transport Control Protocol (TCP). The Bitcoin network protocol is an application layer protocol that is a layer above the transport layer (TCP) and Internet layer (IP).
As such IP and TCP do not provide a mechanism that prevents one computer from communicating with one specific other. They don't prevent this because this is exactly what they were designed to do.
IP does include both broadcast and multicast capabilities however Bitcoin uses an approach generally described as a gossip protocol. Each node communicates on a direct one-to-one basis with each of a small number of other nodes. I'm not familiar with managing an IP multicast domain but I suspect it might be difficult in a purely peer-to-peer arrangement of nodes such as Bitcoin requires. You also have to allow for nodes that are offline at the time of the broadcast.
It is hard to imagine how one could enforce a broadcast-only policy since new Bitcoin nodes are continuously being created and older Bitcoin nodes disappearing and regular Bitcoin nodes are on computers that are only intermittently connected. We wouldn't want the whole network forced to a halt because someone with a Bitcoin wallet on their phone walked into a part of a building where phone reception was poor, or ran their battery down, suffered a power cut, broke their phone, etc. There will never be a time when all nodes are available.
I believe this would be especially difficult in a peer-to-peer network like Bitcoin, where there is no centralised control and anyone can write a Bitcoin application.