This sounds fair enough, but I would think that what should really be done is free `vf` _after_ destroying the VTE widget, as the callbacks use the `vf` global.
I've not investigated the source code extensively myself (the patch I posted I'm doing on behalf of the original author).
With a little help I could investigate a better patch, but the indication you give suggest a more complicated approach I guess which would require bigger changes.