I think LUCENE-2026 should be largely unaffected by flex indexing, except that it now accepts the Codecs instance and must thread it down.
Flex indexing lives "under" IndexWriter, except when the segment writing needs to create the segment, and then that part of IndexWriter is a consumer of the flex API.
What makes me nervous about just doing this patch as-is, is that it's a change to IW's public API. For such changes I think it's worth spending some more time, looking forward, to how best to expose that API. I don't mind making such changes internal to lucene ("progress not perfection"), but for changes to the public API, we should give it some thought.
There's been a number of requests (many from you!0 for customizing how readers are created (what class is used), what components they contain, how to associate caches with them, being notified when merges complete, being able to make deletions against them directly, controlling warming, etc. I'd like to put all these on the table and understand how we can make a coherent change, and pulling out ReaderPool (so that eg it's also shared with IndexReader.open) seems roughly like what we need to do to address these. LUCENE-2133 is also related here.