The way I understand the FindText API, it is meant to allow for both use-cases. It goes in length about a “default search algorithm”, but this is meant to be overwritable by the developer (it is an Interface). Indeed, from the introduction:
In dynamic lazy-loaded (or “infinite-scroll”) content, the text being searched for may not have been loaded into the DOM yet. […] To ensure interoperability, this specification describes a default find-text algorithm, but this can be overriden by the developer.
That spec definitely needs more work on the use-cases @jyasskin mentions, but I think it’s the right place for that work to happen.