Thanks SiCrane and Iride for the replies. So, to use your examples SiCrane, what is the benefit of actually doing it that way? Is it just a "different" way to approach the architecture of the game? Or does thinking about the game in that way provide real benefits in terms of efficiency or clear coding?
To answer your question directly, efficiency of execution is not the point or intent of a FSM. FSM's are used to break down game logic into easily managable units for the human programmers. E.g., it's useful for making your code easier to read, easier to understand and easier to maintain. It has the added benefit of making bugs easier to find (part of the maintenance I mentioned).
EDIT: I see apatriarca already beat me to this description... ;)