If they had made Riviera two end stations instead of a turn station, it would have solved all of these. At the expense of making more people transfer.
On the plus side, that transfer and queue at Riviera would solve needing empty cars from CBR. Since all riders would just get back in line with Riviera guests already in line to Epcot. It would also solve slow downs, since the two end stations could both have the extra loading loop.
For the negative, traveling from AOA/POP to Epcot would take two transfers instead of one. Traveling from CBR hub to Epcot would take one transfer instead of none. The transfer station is more complex than an end station, so I'm not sure building two ends would be hugely different in cost. It would need an extra motor both to build and run though.