Purpose of unique header in block hashing algorithm https://en.bitcoin.it/wiki/Block_hashing_algorithm said this about the block header:

"Given just those fields, people would frequently generate the exact same sequence of hashes as each other and the fastest CPU would almost always win." 

But isn't that exactly what we want?  

So, they use the merkleRoot which makes the header nearly unique and "Every hash you calculate has the same chance of winning as every other hash calculated by the network."

I guess this change makes CPU speed less important, but not much less important.  How much less important is CPU speed (or even network latency) with the addition of the merkleRoot to the block header?
I think you might have misinterpreted the article. The MerkelRoots is a representation of all the transaction in the block that you're currently trying to mine. They are unique because the first transaction in each block is unique to each miner. The uniqueness guarantees that the sequence of generated hashes will be different for each miner. And because of this uniqueness, the sequence of hashes generated by a low-powered CPU might occasionally lead to the desired result before a high-powered monster CPU does, whereas if everyone were following the same sequence, the high-powered monster CPU would always find the desired result first. So in essence, the first transaction introduces uniqueness that makes CPU speed less important and not the MerkelRoot.

Incidentally, I had almost finished answering the question in a completely different way when I realized the confusion. In case that answer is helpful, here it is ...

In mining, you're constantly changing a block (by updating the nonce) and trying to find a hash that meets the proper requirements. You're also changing the transactions in a block, (which also changes it's hash), but this happens much less frequently. Hashing the entire block is an expensive operation, but hashing only a small part is not as expensive. Since you're changing the transactions -- by far the largest part -- much less frequently than the nonce, it makes sense to "cache" the change so that the mining hash operation doesn't take so many resources.

The Merkle Root is this cache, that is, it [compactly] represents any changes in the list of transactions. Thus when you hash the header (which includes any change in the nonce or the transaction), you are still hashing the entire block.

Assuming that CPUs scale linearly, the answer to your question about how much less important CPU speed is disappointingly probably not at all. The benefit that you get is that any CPU will be able to calculate more hashes per second than with the alternative, and this should be proportional to the CPU's power/clock-speed.

You also mentioned network latency, but as all of the hashing takes place on individual computers and full transactions are sent throughout the network, whether or not a Merkel Root is used wouldn't affect network traffic.