Can we not simply overwrite the the data when we're "done" with it and then not worry about when it's actually unallocated by the GC?
I'm not sure I see the issue, you just implement a memory-safe string class that manages arbitrary bytes, it's slower but that wasn't the goal.