Update: Just tried a simple segment linking test and the resulting files properly played in sequence using VLC and MPC-HC (yay). ffmpeg seemed to ignore any streams not contained in the first mkv file, though (boo). There was a branch for ffmpeg to add segment linking support, but I have no clue what the disposition was. I would guess, based on light research, that playback support would be limited as well, as many devices likely just implement basic Matroska support and this is a more advanced (read: obscure outside of certain anime circles) feature of the container.
After that, I tried using ordered chapters in two different editions (which basically creates two "titles"/chapter lists in the same file). This was an interesting test, since I concatenated all of the branched segments into one hunk of video and just used chapters as playlists and the chapter start/end times to segment them rather than using segment linking. I used the first two segments of Rogue One for the test since it has several intro segments (one for each language provided). Here are the basics of the scenario:
Before - three files:
- Segment 1: English text intro (~41sec)
- Segment 2: French text intro (~41secs, identical runtime to seg 1)
- Segment 3: Planet fly-by sequence (~7mins)
- No chapters in any file
After - one file:
- One video stream, combining all three segments in numerical order, so each segment's video starts where the previous segment's ended (e.g. seg 3 begins at ~82secs)
- Two editions (ordered chapters flag set) and chapter sets:
- First edition chapters - ch1 starts at 0sec, ch2 starts at ~82secs
- Second edition chapters - ch1 starts at 41secs, ch2 starts at ~82secs
This setup worked really well for straight playback locally for the most part (requires a keyframe at the start of each chapter and a few other quirks to consider for it to do so, but it worked). This time, VLC played fine, but MPC-HC ignored the second edition entirely and just played the entire video stream with wacky chapter positions (ffplay did the same). Transcoding it on-the-fly would be problematic for a few reasons that I won't get into - most notably, ffmpeg utterly ignored everything except the first edition and dropped the ordered chapter flag, which essentially broke the nicely-ordered playback of even the first edition...as well as a few other oddities. It would also need to seek a lot to transcode any particular "edition"...doable, but silly. Segment linking would be clearly better, but that seems like a no-go as noted before.
Ultimately, I'd say it could be done, but it's a ton of work to set these files up properly (can be scripted, but still) and some work on the server side would probably be needed as well to work around ffmpeg's inability to deal with these features of the Matroska container. As much as I'd love to see it, I just don't think it would be worth the work server-side until proper support is included in ffmpeg (there's a wishlist "bug" on the tracker for this, but no status updates in over nine months). Also, direct playing these types of files would be equally spotty as evidenced by my two most-used players yielding different results (and ffplay completely ignoring the editions entirely as well), and remuxes aren't going to work either (again, due to ffmpeg).
I may still play with this a bit and look at the spec again to see if I can come up with other non-streaming-manifest ideas, but I'm not too hopeful. I may have missed some option in ffmpeg as well, so I'll review the docs/code a bit as well.