Yes, saving and restoring flags is very expensive. I thought about talking about that in the article but figured that was too much of a detour.
Darek Mihocka wrote a really interesting article about how to optimize flag calculations in an x86 emulator:
http://emulators.com/docs/nx11_flags.htm
Although looking at your username I suspect you may have read this one before...