[...] It's true that extra information in NaNs is lost, but they all behave
the same anyway...
That's true for normal arithmetic with them, but wrong if you use e.g. an external library which encodes things into the sign bit/paylod of NaNs (see e.g. NaN tagging). In the latter case, "read . show" actively destroys necessary information.