Of course not. But the point is for the program to be able to catch the NaN before applying it, and do something appropriate instead.
Doing something appropriate is not crashing and instead giving me a useable number that's effectively rounded to infinity. It's wasteful to make the code do it, and it causes issues then the programmer forgets.
The value 0.1 cannot be represented in floating point, and this doesn't cause anyone any greef when I use a rounded value instead. I'm of the opinion that computer hardware should do the same for divide by zero exceptions, and return a rounded value of infinity that operates in succeding calculations. Returning a NAN merely trashes everything afterward, and it's not a useable option.