Right that's the standard conservative garbage collection. However, new results show that it's significantly worse than a precise collector (reference pending).
I'd love to see that reference, as I've not yet seen an example where this was true in practicd, but know several examples where it is definitely false (e.g. we use a modification of the Julia GC which uses consevative stack scanning to allow interop with another system, and it seems to perform very well).
I think that only scanning the stack conservatively should not change much from a completely precise GC. The chances of misidentifying a potential reference to an enormous data structure that is collectable are pretty slim in a memory region as small as a typical stack.
Scanning the entire heap is different because of its generally much bigger size. It's far more likely then to see references where there are none.