@TheBlueMatt has shown that a relay network helps with convergence (fewer orphans) but the implementation depends on an external centralised network of relay servers and a separate client that talks to bitcoind.
Bitcoin is peer2peer, so of course there will be network disagreement over the state of the blockchain and thus convergence to the resolution of that disagreement will always take time. There is no 100% solution to this design of bitcoin, instead the rules need to be (as they already are) simple to decide disagreement. Centralisation, to reduce the amount of disagreement, isn't an acceptable long term option.
An obvious option to help reduce divergence would be to add another port to bitcoind for a block relay network to allow for send/receive of blocks with the following if possible:
Compression - binary data, and also compression of that data - since it's a new non-network-forking option, the data can be designed for speed and compressed as much as possible since that would be an obvious gain. Transaction compression may also be an option - most nodes have most transactions (pretty much all but the coinbase) already available to them when most blocks arrive.
Early relay from trusted connections - e.g. send the block on if the header hash has been verified and version checks have been done (takes only nanoseconds to hash a block header on any modern desktop CPU or better) - mining finding blocks isn't that common so the risk of passing on invalid blocks weighs very low against the obvious network gains. Also of course, any bitcoind on the network can already distribute 'bad' blocks to any other bitcoind they are connected to, the current core client just stops them being relayed by delaying for the completion of the full block/transaction check. The level, defined within the new protocol, of checks done and accepted, could also be part of the trust level required to accept/transmit/ignore data.
This would effectively replace @TheBlueMatt relay network with bitcoind's own block relay network that would run in parallel with the current bitcoin network, however, it should also allow, in the configuration, for external/internal networks to accept the external block network at 'few' points and distribute it quickly to 'many' internal network points. Edit: and in case it isn't immediately obvious, this would allow for networks like @TheBlueMatt to be created and used as required. e.g. such a network similar to the one that already exists that you could configure in a higher trust rating based on your trust of any such available network.