Since there has been no activity for a while, I will answer my own questions according to my current understanding.
1. I haven't checked, but I am guessing it just returns null for variants that cannot be parsed. I'm guessing this because I don't see any other way for get_var to report an error.
2. Moot point because 3 isn't possible to do well
3. Possible with arithmetic in GDScript, but it will be very slow compared to just looking at the bytes of an int / float in C / C++. Conversion of floats would be especially slow, on top of being difficult to program.