So no one has ever told me this, but from what I've seen child references won't be closed using a close reference, if a parent is forcing them to stay open.
Make a new VI, drop down a control of any kind. Right click and create a static reference to that control. Use the Close Reference on that reference, then use a property node to read the label text of the control, passing the error out of the Close Reference into the error in of the property node. Now run the VI. The label is still returned, and the reference is still valid even through you asked to close it.
This is because even though you asked to close the reference, it needed to be open because the VI that uses it is still in memory. Reading the detailed help on the close reference function has more information on this. This might also be compounded by the fact that I think this is an example of a "This" reference.
So closing the control reference in my mind does nothing, unless you explicitly opened the reference using the Open VI Object Reference. So if you opened a reference to a VI, then used a property node to return the control references on the front panel. Then it is my understanding that you don't need to close the control references, when you are done. All you need to do is ensure the VI reference you opened gets closed. As a fun test I'll usually write a simple VI that does my work and closes the things I think it needs to close, then use the Run Continuous button and look at the task manager and see if memory increases. This is the only time I find myself using this button.