In the case of 'nancy boy' my text "string starts with a number" looks silly because NaN claims to be not a number
I don't think you need worry about that.
My take on the reason that NaN ** 0 is defined to be 1 is that "every number raised to the power of 0 is 1" ... from which I deduce that the IEEE standards committee has decided that NaN *is* a number.