I know that Tor re-uses the circuits, all streams are attached to the same circuit, but I do not know whether Tor assigns all streams from all website to the same circuit or it assigns the streams of different websites to the different circuits. If we consider ALL streams (belong to the all visiting websites) are assigned to the same circuit, it means we need just one circuit every 10 minutes (as long as this circuit is up). So why do we need on-demand circuits?
Circuit on-demand are purposely to replace the previous circuit if the relays selected initially are bad, unstable, lower bandwidth/throughput, congestion, attackers relays etc. In addition, if the Tor client uses the same exit node and configured to use the same circuit, then the streams from many websites will passes through the same circuit. Else, in any case of poor circuit performance, the on-demand circuit will come to effect anytime during the transmission or even before circuit Time-to-live 10 mins. Basically, Tor is trying to give as best circuit performance to its clients.