Thanks to everyone who commented on the white paper, it's a lot better because of the comments I got here and on gcc-help. 

In particular I'd like to thank Václav Haisman, Thomas Heller who wrote the memcpy version of the routine I use in the document and pointed out that it will generate exactly the same assembler, and Andrew Haley who pointed out a more portable way to define the union, and also pointed out that gcc will elide the calls to memcpy.

Current version at http://dbp-consulting.com/StrictAliasing.pdf

Patrick