Everytime there's an opportunity to make a substitution, the coach looks at his starters and the possible guys on the bench. Then, he makes a judgement about their relative abilities, as affected by their stamina and minutes played thus far. He looks at every player on the bench, but weighs them by their position on depth chart. If the option on the bench is better than the guy on the floor, he'll make a change. So, a guy off the depth chart can be inserted, but his ability must be much much better than the alternative for it to happen. Also, when garbage time is called, these rules change a bit, and the coach may make more changes, when the result is taking out the starter.
When the sub pattern is set to LCD, I think the coach just goes with whoever is best. With SFDC, I suspect the switch is usually made when the starter gets to a certain level of reduced ability, due to stamina.
I have a federation where we analize the tactics and LCD. We are allready at the point, that we have an excel tool which can predict the starting line up of your team. sometimes the line up is a little bit different, but we are really close.
Our starting point was: every player has five ratings. One for PG, one for SG, one for SF, one for PF and one for C. This rating is not the same like the one in the boxscores. We call it the "engine-rating". When you play LCD, the engine calculates the best team. And the best one would be a team with the highest rating. Like you said, everytime when there's an opportunity to make a substitution, the engine calculates the highest possible line up and makes the changes. the main target with LCD is to win the game. an if possible, as high as you can.
What is important for this engine rating? Every position has its own combination or weight of importance. So you have to "guess" and try some combinations. Also, stamina and free throws are included.
Garbage time: We came to the conclusion, that as soon as the garbage time starts, the engine ignores your line up. If you have a player on SG and he should play the whole game... it won't happen. Don't ask me why. I don't know it yet.
We tried it several times and only some of us were successful with 48min. But there wasn't a garbage time. The games were always close or had a difference of maximum 30 points. I tried it too and my player had sometimes 48 minutes and the next time 45 minutes -.-