It is not a solution for all cases.
- Memory managing of concurrent containers. Lock-free algorithms requires GC or the hazard pointers and these are basically based on GC.
- You often need the GC engine when you implementing or integrating another language.