According to the docs:
IsMissing does not work on simple data types (such as Integer or Double) because, unlike Variants, they don't have a provision for a "missing" flag bit
But in the tagVARIANT struct I don't see anything about a flag that can be set, I was wondering if the vartype embeds this info like how it embeds ByRef with VT_BYREF (what does VT_RESERVED mean?) but I'm not sure.