When you do a = 5 (global) you are actually doing _G.a = 5. The environment is simply a table and all the globals are stored in _G. Roblox has changed this for security reasons though and the defualt environment is locked away.
Here it is referring to storing references in tables. Even though an object might not have any more “references” the table still contains a reference to it therefore it won’t get garbage collected.
This is where weak tables come in. A table’s keys and/or values can be weak. If the only references to an object are weak then the object will become eligible for garbage collection. So you could store objects in a weak table and they would get gc’d when there are no more strong references to them.
Roblox doesn’t seem to have changed anything in this regard.