-fno-strict-aliasing does not solve anything, it just prevents the
compiler from telling you about bugs in your code.
Which must be the reason that it is used when building the kernel on AMD64.
Actually, whenever the kernel is compiled with -O2. "Type punning" is
sufficiently uncommon in the kernel proper that it is correctable there.
However, it is pervasive throughout the device drivers.