Actually, I suspect the substitution pattern is probably pretty delicate programming. It is already far ahead of some other aspects of the game, (like estimating the range that "the players most like him" sold for on the Transfer market, but that is another story altogether). I am still experimenting with the existing arrangement of substitution choices, and learning bit by bit.
There is already a substitution feature for "Garbage Time." I would like to see minor improvement on that, to avoid late game injuries in a game that is all but over. Something like "Pull Starters if down by ___ or more points with ___ minutes or less remaining" would be great for that.
If I understand Hrudey's suggestion, it calls for the ability to choose different substitution patterns for different positions, all in the same game. That could present interesting strategic options.
Here's another thought: something to link two players, like "always play X at PG and Y at SG together," or "never play A at PF and B at C together." This could be useful to make sure you always have at least one scorer at the guard positions, or never have two poor rebounders playing together, things like that. I have some defensive specialists that I like to spot against an opponent's best scorers, but too many of them at once causes a real drought in scoring for a while.