We normally say that every change should verify, but there are rare cases where we allow the scenario you describe.
We handle this outside Gerrit. Our developers have the option of starting a test job for change 109, and checking a "
gerrit_verify_ancestors" option, which means that if 109 verifies, then all its un-submitted ancestors will get Verified+1 as well. So when the Jenkins job posts back to Gerrit, both 108 and 109 get a Verified+1 (the default is just for 109). If you look at change 108 in Gerrit, there is a comment posted by Jenkins that says "verified as part of chain 108, 109" (or something like that). Of course this requires some custom code on our part, but it's just Python.
That requires developers to not abuse the system.
Probably a better way to do it is to have separate labels, Verified, and Verefied-with-later-change, and then allow submit if either is +1. That makes explicit the basis on which the change was acceptable.
Matthew