Handling the GC has 2 scenarios right now. 1) the language has destructors or some kind of "I'm going away" object callback we can hook into. In this case it's great, we can manage the memory automatically. 2) In the case we do not have lifecycle events for objects, currently it requires manual management.
We hope many languages will be able to work automatically (like Python can), but it is not clear that we can make all of them work that way. This is also only the case for memory allocated by the Nim library, which for compute-centric stuff, may not be a concern so it isn't necessarily terrible for all Nim in all use-cases. But ofc not ideal.