It is the case. Missing and Nothing behave a little differently in those Unions if they are present as missing or nothing in a vector (see below) – but not if they are in the Union type and not present in the vector. That’s why I asked “How is this being determined”?
julia> Base.summarysize(Union{Missing,Int32}[1, 2])
56
julia> Base.summarysize(Union{Missing,Int32}[1, missing])
52
julia> Base.summarysize(Union{Nothing,Int32}[1, nothing])
52