We enable loop strip mining and counted loop safepoint polls for G1, ZGC and Shenandoah. We do however not enable it for ParallelGC and SerialGC. The reasoning behind these heuristic defaults is that you probably care about latencies more when using G1, ZGC and Shenandoah, so they need to poll in loops.
The effect when using ParallelGC or SerialGC is that you can sometimes have extremely high time to safepoint, as there are no safepoint polls in counted loops at all. And even though it's a finite number of iterations in the loop, the time to execute it can be very long, causing pathological behaviour.
The cost of having loop strip mining and counted loop safepoint polls on is pretty insignificant, so I think we should stop saying it depends on the GC what we do here. This should just be on all the time IMO.