I agree with Peter above in that the article is misleading and doesn't explain how optimized compiled code could misbehave when dealing with variables who's values could be changed outside of "nearby code" (i.e. another process, a hardware driver, another thread (esp. on multiproc) etc.)
Using your favorite search engine, lookup volatile cache c# and you'll get some further reading on this. Even Brad Abrams admits to learning something new about this keyword in his blog.