You are correct in that Routers do not experience this issue. This is because of the differencies in Layer 2 and Layer 3 within Networking.
Layer 2 (which is what Switches work on, unless they are multilayer switches but thats another story) works with MAC addresses and are directed communications between two hosts. This relies on ARP Broadcasts to find out the MAC to IP mapping in order for two hosts to talk to each other. In ethernet we have something called a Collision Domain and a Broadcast Domain. The Collision Domain is usually only when Hubs are used, because everything on a hub shares the media, collisions can occur when two machines talk at the same time. In a switch, the Collision Domain is limited to the port since the Switch has electronics inside that ensures that one port at a time is talking, therefore it performs much better.
A broadcast domain is the portion of the network that will receive broadcasts for that segment. If a switch has no VLAN's (VLAN's are used to create seperate broadcast domains), then the whole switch is within the same broadcast domain. All this can be seen to be happening within the same subnet (unless you have a Directed Broadcast which can then route to a subnet to cause a broadcast, this is usually disabled on routers in order to stop DoS attacks on network segments). If we keep thinking at Layer 2, ARP uses a ARP Broadcast Packet to find the IP to MAC address mapping.
If Host A needs the MAC address of Host B (IP 10.10.10.10), then a ARP Broadcast goes onto the wire, all machines pick it up within that network subnet and only 10.10.10.10 will respond with a Unicast packet with its MAC address. If you have two ways around the switched environment, you get this packet keep going around and also the switches can get confused when it updates its CAM table with Switch Ports to MAC mappings as it can appear that traffic for the same MAC is on two switch ports. Can get very messy.
Right, now to the Router. A router is a Layer 3 device (although these can now go higher to route based on serivces, etc.. but thats another story). If a router receives a broadcast packet, they are configured by default to not forward them. Since Routing is done on IP, its just interested in routing traffic to the correct destination networks. Broadcasts are only local to that Broadcast domain only which is why they are dropped.
If Host A on subnet 1 and Host B on subnet 2 need to talk. Host A will need to send traffic to the Default Gateway (Router A). If host A has not already talked to Router A, then it needs to ARP for the MAC address of Router A. Once it has the Layer 2 MAC address, it can then send a Unicast packet to the router, the router then knows that its destined for Subnet 2 and will forward the packet to the correct place.