Weil Unions nicht dafür gemacht sind, "a" reinzustecken und "b" rauszuholen.
Das kann funktionieren, muss es aber nicht, das Verhalten ist für diesen Fall unspezifiziert!
http://en.wikipedia.org/wiki/Type_punning#cite_note-0

mfG
Markus

PS: Wenn du castest brauchst du auch keinen doppelten Speicher - und bei meiner Variante ebenfalls nicht