I've successfully taken a username from a squatter by reaching out to github support. As long as the user doesn't have active private stuff they might be willing to help you get the username.
At the free level I could see unmodified forks and anything marked private disappearing over time, then culling empty accounts. If I created an account, forked a project, and then left, how many months would need to pass before I'd be surprised that my account hadn't been recycled without my active consent?
Also archival purposes exist, especially for code repos.