Heres my take on all trainer apps
I am on pretty much all of them
Each serves a purpose in terms of training, fun and/or experience.
I really feel developers pain and struggle to create the perfect trainer app product. Because the wish list can be insane. Zwift has many good things going for it, in the same way others have great things going for it.
Zwift is open platform type environment, this is its biggest advantage and disadvantage of the program. The user is given great free reign in the zwift environment. Zwift has to limit courses because it is the basis of its program, to be on the trainer alongside others who are on the trainer.
I think the major problem is gaining the critical mass zwift needs to put out more courses. Also course selection for zwift is constrained to crit style courses where you start and finish at the same location.
Stage racing would be difficult to build on zwift architecture.