does the X10 library buffer these
I don't think the X10 lib buffers commands (however each command is sent on the powerline 3 times anyway.) It looks like your state array is an effective way to prevent multiple sends for timed events though.
X10_blink example and I'm not clear on its usage
I didn't look at the whole example, but you should know that it actually takes 2 commands to do something. The first sets the House and Unit code and the second repeats the House code and sends the command (i.e. ON/OFF, etc.). Once the first command is sent, the Unit code is "remembered" and used for any commands that follow. So you can send the first command and then as many of the second commands as you wish and they will act on the Unit from the first command. :-?
BTW, if your serious about going further you should consider using the X10 libs from ThomasM . . .http://load-8-1.blogspot.com/2010_06_01_archive.html
You can send and receive
, commands are buffered, and repeats identified. It also handles X10 RF reads.
To answer your second post, personally I think a status table belongs in the application rather than the lib. There are too many options to dictate one.
I also have a blog with several X10 projects here