Indeed. Whether you use OO or state machines depends on the architecture of your problem. There is unlikely to be a one-size fits all solution to every class of problem.
State machines are used extensively by HDL hardware design tools, and are easier to debug.