It's useful all the time in serialization and marshalling systems. You end up with very nice code if you can keep a separate stack for each of e.g. your json parser and its paired object unmarshaller.
The nicest outcomes are with coroutines, though, and that begins to be another matter.