Well it's a pretty common approach which is probably used in many custom matchers out there. All these custom matchers still won't work asynchronously because the prerequisite is checked eagerly.

That said, I don't think it will break any existing tests using built-in matchers.