I addressed this scenario in my post. This is "business as usual" at most software companies. Microsoft is supporting multiple versions of its products at any give time and they are all different branches. We do the same in my company and every other software company I have worked at, does the same thing. There are at least three active code branches for any product. Legacy, current, and future. Legacy and current are maintained for bug fixes, and future (main or trunk) is where active development is happening.
Yep, but say there are three active code branches for any product, Adobe has Photoshop, Illustrator, InDesign, After Effects, Premier Pro, Dreamweaver & Muse, as well as additional apps like Bridge, Audition, Encore, InCopy, Prelude and others...so, that's 7 main apps and a host of other apps that need your 3 branch example...now say you have two versions of each app, one that can get new features as they are added and the other version that only gets bug/maintenance fix, so, by my count, that 3x7x2...oh, yeah, two separate platforms, so that another x2.
So, you see why that 2nd code branch because of two sets of features is a big deal? You would need two branches with different features and functionality. That's the point.
Look, Adobe is pretty good at managing code, they'v built special environments but having 2 branches with different features (in effect different products) was deemed, uh, not worth the trouble so they went with subscription only. Yes, you could say they wimped out, but the CS6 & CS6.1 mess made them reevaluate offering both subscription and perpetual.