Because if you let them bounce between 1 and 2 then they will trigger
toggle references every time the object's properties change (maybe every
second). Even if you're not subscribed to
notify::clock but subscribed
notify::timezone then it's still a problem as the ref/unreffing
happens within the GObject notify logic, even if the subscription detail
means you don't get those callbacks.
Now because the toggle references on
WallClock objects are not toggling
down any more, they won't queue the "big hammer" garbage collection to run
every 10 seconds (gjs@e9e96955). And CPU spikes from that regular garbage
collection (which also caused visible stutter sometimes) are avoided.