See #609 (comment) and the following comments.
Special care should be taken of GVarDecls that also have corresponding GFuns. The CIL invariant is that if they refer to the same function, they should share a single physical instance of varinfo.
Currently incremental compare and update treats them separately and may update the ID twice, while also breaking the sharing. I suppose we'll have to group all the GVarDecls for a GFun together and do a single update to the varinfo, which is shared by all of them.