Ok, I found a problem. First, it appears that `unlink` isn't always called before `delete_cycle_collectable`. In case of no cycles, it may not be called at all, so this will leak the stuff that's unlinked.
This is easy enough solved by calling `unlink` from `delete_cycle_collectable`.
The next problem is that this causes a weird memory corruption, because now the `load_info` is actually released for channels in the non-cyclic cases, and this seems to cause the corruption. Presumably, this is why it was not released before. Any idea what's going on here?
I could drop the patch that releases the load_info, but I don't understand why it should be leaking? At least a comment would be warranted IMO.