As I understand it, an empty can only magically change to a load in a yard, an interchange, or off-layout. Thus, your assumption is correct.
I find it interesting to think about how many cars an industry requires.
For instance, if a particular industry gets just one load a day:
On day 1, car #1 shows up at industry A.
On day 2, car #1 is unloaded and is ready for use elsewhere; let’s assume it just gets taken to a yard. Meanwhile, car #2 shows up at industry A.
On day 3, car #1 has magically changed to a load and is now ready for delivery to industry A. Car 2 is unloaded and ready for use elsewhere.
The original intent was to have cars go “off-layout” from the yard, simulating that it was being used elsewhere on the railroad. This would have made car #1 not available until at least day 4. Bob has encountered some problems with this and is reworking the code a bit.
Even so, you can see that it takes more than a few cars to keep the railroad running. On my small layout, I have 8 industries with a yard at each end of the layout. I put out all 32 cars for each operating session.