They really gloss over "getting to the front of a strong queue," which generally requires stacking to many levels of depth in the market (which adds risk), or finding some way to join or remain in weak queues before they become strong, which requires some other method of estimating a theoretical value. Estimating and tracking depth in the queue at each level was definitely a significant part of the more sophisticated code I wrote.
The article may overstate the importance of lower latency as well. I definitely was not the fastest at the time, running some fairly non-optimized Java when I knew there were some faster C++ players in the market, and I was still able to do relatively well.
The real environment is absolutely messier and more complex than described by this article. Still, it's a layer deeper than "speed is good", to paraphrase Gordon Gekko.